SSH ForwardAgent несколько прыжков


15

Последние два часа я безуспешно искал решение следующей проблемы.

Разработка:

Я использую аутентификацию publickey для подключения к своим серверам. Я использую переадресацию ssh-agent, чтобы не управлять открытыми / приватными ключами.

Допустим, у меня есть серверы 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-agent через несколько переходов?

Согласно @Zoredache здесь: /server//a/561576/45671 Мне просто нужно настроить конфигурацию клиента в каждой промежуточной системе. Что я считаю, что я сделал.


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

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

@liquidity могу я спросить тебя, почему ты не хочешь использовать 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
Стоит упомянуть флаг -A для ssh как быструю и грязную альтернативу опции ssh_config или ~ .ssh / config. -A [e] включает переадресацию соединения агента аутентификации.
— dmourati

1
На каждом шаге вы можете использовать ssh-add -lсписок ключей, которые ssh считает, что может получить их через вашего агента. Убедитесь, что вы пересылаете его на каждое соединение!
— MikeyB

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