Я плохо знаком с ssh ключами. Может любой объяснять как ssh-agent bash
и ssh-add
работы?
Я должен понять его внутренности в будущем.
Агент является программой, которая сохраняет Ваши ключи в памяти так, чтобы Вы только разблокировали их однажды вместо каждого раза. ssh-агент делает это для ключей SSH.
Обычные методы для стартового ssh-агента:
eval `ssh-agent`
– это выполняет агент в фоне и устанавливает соответствующие переменные среды для текущего экземпляра оболочки.
(ssh-агент при запуске без аргументов, выходные команды, которые будут интерпретироваться оболочкой.)
exec ssh-agent bash
– запускает новый экземпляр bash
оболочка, заменяя текущую.
(С одним или несколькими аргументами ssh-агент ничего не производит, но запускает указанную команду: в этом случае, bash
оболочка, но технически это могло быть что-либо.)
Второй метод иногда предпочитается, так как он автоматически уничтожает ssh-агент, когда Вы закрываете окно терминала. (При запуске его с eval
, агент остался бы работать, но недоступный.)
Однако это только запускает пустой агент. Для фактического создания этого полезным необходимо использовать, ssh-добавляют, который разблокировал ключи (обычно ~/.ssh/id_*
) и загружает их в агент, делая их доступными для ssh или соединений SFTP.