ssh -A неправильно включает переадресацию соединения с агентом аутентификации

22

Я люблю ssh -A, что позволяет мне использовать мой локальный ключ SSH при установлении соединения с удаленного сервера. Например, я, ssh -A host1.example.comа затем оттуда я могу ssh host2.example.com(или использую git), и он использует мой ключ ssh с оригинальной машины, которым в данном случае должен быть мой mac. Хотя это всегда работало для меня в Debian / Ubuntu, оно не работает на моем новом Mac (Lion).

Что мне здесь не хватает? Как мне настроить ssh для корректной работы с -A? Мне нужен ssh, который не является стандартным MacOS?

rfay
источник

Ответы:

33

На самом деле, очень простой ответ заключается в том, что вы должны запустить

ssh-add

и тогда все работает.

По сути, в macOS уже настроен ssh-agent, но после каждой перезагрузки вам нужно добавлять в него свои ключи. ssh-add предоставляет ssh-agent доступ к вашим ключам для текущего цикла загрузки. Вам нужно будет ввести пароль для вашего закрытого ключа, если вы его создали.

rfay
источник
Это решило мою последнюю проблему с пересылкой по ssh после обновления до macOS (через 5 лет, все еще полезный ответ, спасибо @rfay)
23tux
Это работает, но некоторые объяснения того, почему было бы полезно / помочь людям запомнить эту команду.
Адам Паркин
2
@AdamParkin добавил еще один параграф, объясняющий.
rfay
1

Концепция позади ssh -A- агенты ssh. Они работают в фоновом режиме и с помощью переменных среды агент может быть найден и автоматически использован для аутентификации при входе на другие машины с использованием ssh. Посмотрите man-страницу ssh-agent для более подробной информации.

В Mac OS X ssh-агент должен запускаться по требованию.

Для получения дополнительной информации см .:

Флориан Фельдхаус
источник
1

Начиная с OS X 10.8 вам нужно сделать это один раз:

sudo touch /var/db/useLS

И добавьте это как часть вашего ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

Примечание: этот рецепт - часть моих бедуинских сценариев.

Сорин
источник
Хм, только что попробовал это; Затем агент запускается, но вам все равно нужно выполнить команду ssh-add, чтобы все заработало. Так что ssh-add по-прежнему остается ответом, насколько я понимаю. Думаю, мне следует добавить его в мой .bash_profile.
rfay
LOL, что если мой закрытый ключ нуждается в парольной фразе?
Jeffrey04