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.