Що саме робить 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
Frank Nocke

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.