#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. таким образом, он пройдет через все ключи. Вот как это проверяется