Требуется ли дополнительная настройка для пересылки ssh-agent?


21

Это руководство прекрасно объясняет, как ssh-agent работает в разных системах. Я хотел бы настроить переадресацию так, как это показано в последнем наборе диаграмм, но у меня возникают проблемы с отслеживанием шагов, необходимых для этого.

Для некоторых машин в моей сети я могу использовать SSH от A до B, затем от B до C, не вводя пароль. Другие машины, однако, выдают «Не удалось открыть соединение с вашим агентом аутентификации» (иногда!), А затем не пересылают мои данные аутентификации. SSHing от одного из этих компьютеров к другому блоку в сети снова запрашивает мой пароль закрытого ключа.

Я не собирал эти машины, но могу управлять некоторыми из них. Я не знаю наверняка, в чем разница между работающими Boxen и теми, кто этого не делает - это может быть проблема с брандмауэром, конфигурация ssh / ssh-agent / sshd, что угодно, и я не вижу никаких шагов. пошаговые инструкции, специфичные для пересылки, плавающей вокруг сети. Мне просто нужно знать, с чего начать эту проблему.

Ответы:


23

Пересылка агента Ssh должна быть разрешена на клиенте ( ForwardAgentопция в ~/.ssh/config) и на сервере ( AllowAgentForwardingопция в sshd_config). Скорее всего, ваши машины имеют разные настройки по умолчанию для одного или обоих этих параметров.

Если вы идете A-> B-> C, на шаге B-> C переадресация не требуется (если, конечно, вы не собираетесь идти C-> D).

Когда вы вошли в B, убедитесь, что переменная окружения SSH_AUTH_SOCKопределена. Его ценность в том, как sshзнать, как связаться с агентом.

Нет веских оснований запрещать переадресацию агентов на сервере, учитывая, что переадресация агентов делает клиента уязвимым для сервера, а не наоборот, и что вы в принципе можете настроить переадресацию агентов вручную (хотя в этом нет особого смысла, поскольку Сложность его настройки может нанести ущерб удобству пересылки агентов).


Хорошая новость: спасибо, что указали мне на правильный ключ для поиска! Плохая новость: видимо, это известная ошибка в openssh-сервере. Похоже, что в какой-то момент он был исправлен, но я не думаю, что у меня запущена достаточно текущая версия - я получаю «Плохая опция конфигурации: AllowAgentForwarding», когда я пытаюсь ее включить. Похоже, он отключил обновление моего программного обеспечения (снова ...)
Coderer

1
@Coderer: Поскольку по умолчанию переадресация агента включена, этого должно быть достаточно, чтобы удалить любую AllowAgentForwardingстроку из sshd_config.
Жиль "ТАК - перестать быть злым"

@Gilles Если кто-то хочет вручную настроить переадресацию агента для существующего сеанса, как он будет это делать? Это реальная необходимость в сценариях инициализации, используемых на временных машинах, таких как AMI, которые поставляются с AllowAgentForwardingотключенными.
Эндрю Де Андраде

@AndrewDeAndrade Для существующего сеанса у вас вырезана работа. Если вы имели в виду настройку переадресации агента, даже если он отключен на сервере, вам необходимо переслать сокет unix через TCP; это должно быть выполнимо с netcat или socat с обеих сторон.
Жиль "ТАК - перестань быть злым"

@ Жиль, к такому выводу я тоже пришел. Я обнаружил, что вы также можете использовать spiped, который более безопасен, но требует симметричного обмена ключами, но после этого становится проще.
Эндрю Де Андраде

14

Хотя у вас уже есть правильный ответ @Gilles выше, я хотел бы отметить, что AllowAgentForwardingон поддерживается только в OpenSSH 5.1 и выше.

Серверы OpenSSH до 5.1, как я видел в своем окне RHEL 4u5, разрешают переадресацию агентов по умолчанию. Поэтому, если ваш сервер старше 5.1 и переадресация агента не работает, проблема, скорее всего, в клиенте ssh. Так как переадресация, кажется, работает на некоторых машинах для вас, кажется, что /etc/ssh/ssh_configвсе в порядке. Проверьте, нет ~/.ssh/configли каких-либо исключений, сделанных для отключения переадресации агента для затронутых ящиков.

Ссылка: http://www.openssh.org/txt/release-5.1


привет Sandip, у тебя есть идеи по этому поводу? superuser.com/questions/958978/…
Никс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.