SSH ForwardAgent декілька хмелів


15

Протягом останніх 2 годин я не шукав рішення наступної проблеми.

Розробка:

Я використовую аутентифікацію publickey для підключення до своїх серверів. Я використовую переадресацію ssh-агента, щоб не потрібно керувати відкритими / приватними ключами.

Скажімо, у мене є сервери A, B and C.

Це дуже добре працює, якщо я підключаюся LOCAL ---> A ---> B.

Це також дуже добре працює, якщо я це роблю LOCAL ---> A ---> C.

Тепер, якщо я спробую LOCAL ---> A ---> B ---> C, SSH не може підключитися B to C.

Варто зауважити: я підключаюсь до сервера A як ліквідність, тоді як я підключаюсь до сервера B як root. Підключення до сервера B, оскільки ліквідність вирішує проблему, але це не для мене варіант.

Відповідно до рекомендації користувача, я використовую ssh -Aкожен раз, щоб переконатися, що переадресація агента включена.

Я знайшов одне подібне запитання, без відповіді тут: Чи можливо ланцюг переадресації ssh-агента через декілька стрибків?

Відповідно до @Zoredache тут: /server//a/561576/45671 мені просто потрібно налаштувати конфігурацію свого клієнта на кожній проміжної системі. Що я вважаю, що зробив.


Подумайте про використання ProxyCommandперестрибування (як пояснено тут ) замість пересилання SSH-агента. Для вашого підходу вам доведеться довіряти всім машинам у ланцюжку, оскільки вони можуть (ab) використовувати ваші приватні ключі. Мені також подобається підхід ProxyCommand набагато краще, оскільки перевірка відомих хостів виконується локально, і, крім того, ви можете налаштувати ланцюг у своєму конфігурації SSH, щоб ви могли використовувати єдину команду для підключення до C.
— gertvdijk

Я, на жаль, не можу використовувати proxyCommand. Незважаючи на міркування безпеки, мені дійсно потрібно використовувати forwardAgent.
— ліквідність

@ ліквідність я можу запитати вас, чому ви не хочете використовувати proxyCommand? У мене така ж проблема, і як я розумію, proxyCommand є більш безпечним. Тож я думаю, який з них використовувати ..
— grep

Відповіді:


13

Щоб переадресація агента працювала через декілька стрибків, вам просто потрібно налаштувати конфігурацію клієнта для кожної проміжної системи, щоб переадресація агента.

Це може бути так само просто, як переконатися, що ваша /etc/ssh/ssh_configналаштована. Але якщо у вас є ~/.ssh/configконфігурації для кожного клієнта, вам може знадобитися відрегулювати ці налаштування.

Host *
    ForwardAgent yes

Ви можете бачити, чи відбулося переадресація агента чи помилка, просто ви додали цю -vопцію.

$ ssh -v issc@server1
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/zoredache/.ssh/config
...
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
Linux server1 3.11-0.bpo.2-amd64 #1 SMP Debian 3.11.8-1~bpo70+1 (2013-11-21) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec 15 20:39:44 2013 from 10.2.4.243
issc@server1:~$

Також переконайтеся, що у вас є дійсний набір змінної середовища.

issc@server1:~$ export | grep SSH_AUTH
declare -x SSH_AUTH_SOCK="/tmp/ssh-7VejOmKtNv/agent.57943"

4
Варто згадати прапор -As ssh як швидку та брудну альтернативу опції ssh_config або ~ .ssh / config. -A [e] може переадресувати з'єднання агента аутентифікації.
— dmourati

1
На кожному кроці ви можете використовувати ssh-add -lдля того, щоб перелічити ключі, на які ssh думає, що це може отримати через вашого агента. Переконайтеся, що ви пересилаєте його на кожному з'єднанні!
— MikeyB

Спасибі! Також зауважте, що якщо все зроблено правильно, вам не доведеться вручну запускати ssh-агент на останньому сервері. Він запуститься автоматично, якщо ви побачите рядок Requesting authentication agent forwarding.у своєму налагодженні. Якщо ви спробували .bash_profileзапустити ssh-агент, видаліть його звідти, інакше ваш агент почнеться знову без жодних ідентичностей.
— 2upmedia
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.