Что именно делает ssh-add?


15

Недавно я переустановил свой ноутбук и обнаружил, что «git clone» не работает. Я постоянно получаю Permission denied (publickey).ошибки.

Исправление описано на странице проблем SSH в GitHub : используйте, ssh-addчтобы сообщить SSH о ключе, который я хочу использовать для аутентификации на GitHub.

Мой вопрос: под капотом, что на ssh-addсамом деле делает?

Я собирался расширить мое понимание SSH на некоторое время, и это кажется хорошим поводом для начала :-)

Ответы:


21

ssh-addдобавляет идентификаторы закрытого ключа (из вашего ~/.sshкаталога) к агенту аутентификации ( ssh-agent), чтобы агент ssh мог позаботиться о вашей аутентификации, и вы не вводите пароли на терминале.


Я буду честен, это смутило меня некоторое время. Я думал, что клиент ssh всегда использовал ключ в вашем ~/.sshкаталоге. Некоторые дистрибутивы делают эквивалент ssh-addавтоматически? Может поэтому я запутался?
— Блонг

4
sshдействительно использует ключ в ~/.sshкаталоге, но если ключ защищен парольной фразой, эту парольную фразу необходимо ввести в какой-то момент. Если вы используете ssh-agentи ssh-add, вы вводите эту фразу один раз. В противном случае вы должны вводить парольную фразу при каждом использовании ssh. Обратите внимание, что если ключ не защищен паролем, вы можете использовать его sshбез запроса пароля.
— Питер Джон Аклам

Может быть несколько ключей ssh, ~/.sshи это может быть более полезным, см. SO и документы по bitbucket
— Фрэнк Нок

0

Основываясь на этой статье в github , иногда в некоторых дистрибутивах Linux, даже после того, как вы все настроили правильно, появляется эта ошибка:

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

И вы должны бежать, ssh-addчтобы решить проблему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.