в чем разница между ssh-add и ssh-keygen

#ssh

Вопрос:

Я знаю, что ssh-keygen может создавать открытый и закрытый ключ внутри ~/.ssh по умолчанию, как id_rsa и id_rsa.pub

напр.:

 ssh-keygen  

Позже мы добавим id_rsa.pub его на known_hosts сервер, чтобы мы могли сделать

 ssh user@hostname.com  

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

Напр.:

 ssh-add lt;(echo "$SSH_PRIVATE_KEY")  

для этого нам нужно запустить ssh-агент

 eval $(ssh-agent -s)  

и затем

 ssh user@hostname.com  

Предполагая, что уже ~/.ssh/id_rsa есть . Итак, как ssh узнает, какой закрытый ключ он должен использовать

Ответ №1:

ssh , если он найдет значение для SSH_AUTH_SOCK в среде, запросит у этого агента все закрытые ключи и попробует их один за другим, если вы не укажете ему, какой конкретный ключ использовать с помощью параметра -i командной строки или параметра IdentitiyFile конфигурации.

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

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

Комментарии:

1. таким образом, он пройдет через все ключи. Вот как это проверяется