ключі авторизації з автоматом шлюзу


0

Я намагаюся налаштувати авторизаційні ключі, щоб я міг увійти на віддалену машину без пароля.

Ускладнення полягає в тому, що я повинен пройти через університетський шлюз (machine1) спочатку, перш ніж я зможу дістатися до віддаленої машини (machine2).

Я створив ключі авторизації на своїй локальній машині та додав відкритий ключ до списку авторизованих ключів на machine1. Це добре; Тепер я можу ввімкнути ssh в machine1 без пароля.

Мені не зрозуміло на наступному кроці. Я зараз:

(а) потрібно генерувати більше ключів на machine1 та додавати їх до дозволених ключів на machine2? або (b) поставити той самий відкритий ключ (від моєї локальної машини), який я щойно додав до machine1, to machine2?

Відповіді:


2

Ви можете робити і те, і інше.

а) більше клавіш

Ви можете піти далі і створити ключі на machine1і скопіювати відкритий ключ machine2«s /home/yourusername/.ssh/authorized_keysфайл.

Якщо ви не вирішите альтернативу нижче, я б запропонував цей метод. Якщо хто - то отримує свій секретний ключ для machine2на machine1, він по- , як і раніше не має свій секретний ключ на ваш клієнт для machine1.

б) той самий ключ

Ви також можете взяти відкритий ключ, який ви скопіювали, machine1і надіти його machine2. У цьому випадку, ви повинні скопіювати закритий ключ machine1успішно SSH від machine1до machine2.

Я б не рекомендував цього, оскільки ваш єдиний, лише приватний ключ тепер доступний у віддаленій системі.

Альтернатива

в) ProxyCommand

Зберігайте приватний ключ приватно на своєму клієнті. Копіюйте відкритий ключ на кожну машину /home/yourusername/.ssh/authorized_keys. На вашому клієнті налаштуйте /home/yourusername/.ssh/config(якщо ви використовуєте Linux на своєму клієнті):

Host machine1
    HostName machine1.domain.tld
    Port 22   # or whichever port that is in your scenario
    User yourusername
    IdentityFile ~/.ssh/machine1privatekey

Host machine2
    HostName hostname   # resolves in the local network? If not, give its IP address here
    Port 22
    User yourusername
    IdentityFile ~/.ssh/machine1privatekey # the same as above
    ProxyCommand ssh -W machine2:22 machine1

У цьому випадку простий ssh machine2підключить вас до machine2 через machine1 без необхідності спочатку ssh до machine1, а потім вручну ssh до machine2.

Додаткова перевага: ваш приватний ключ повинен сидіти лише на вашому клієнті, а не на віддаленій системі.

Редагувати:

г) переадресація агента SSH

Ви, ймовірно, можете зберігати як приватні ключі для, так machine1і machine2для свого клієнта, і використовувати пересилання перекладу ssh для machine1пересилання вашого приватного ключа від клієнта до machine2. Це вважається ризикованим , і я його не використовую, але це має бути щось у цьому напрямку:

$ ssh-agent /bin/bash
$ ssh-add ~/.ssh/machine*privatekey
$ ssh -A -p 22 yourusername@machine1.domain.tld 'ssh -p 22 yourusernameqmachine2'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.