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