Последние два часа я безуспешно искал решение следующей проблемы.
Разработка:
Я использую аутентификацию 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.Ответы:
Чтобы переадресация агента работала через несколько переходов, вам просто нужно настроить конфигурацию клиента в каждой промежуточной системе, чтобы переадресация агента.
Это может быть так же просто, как убедиться, что
/etc/ssh/ssh_config
это настроено. Но если у вас есть~/.ssh/config
настройки для каждого клиента, вам, возможно, придется изменить эти настройки.Вы можете увидеть, произошла ли переадресация агента или произошла ошибка, если вы просто добавили эту
-v
опцию.Также убедитесь, что у вас есть допустимый набор переменных среды.
источник
ssh-add -l
список ключей, которые ssh считает, что может получить их через вашего агента. Убедитесь, что вы пересылаете его на каждое соединение!Requesting authentication agent forwarding.
в вашем отладочном выводе. Если вы попытались через.bash_profile
ssh запустить агент, удалите его оттуда, иначе ваш агент запустится снова без каких-либо идентификаторов.