Последние два часа я безуспешно искал решение следующей проблемы.
Разработка:
Я использую аутентификацию 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.