SSH Agent: как перестать вводить пароль от ключа SSH (ssh-add)
Устали каждый раз вводить кодовую фразу ключа (Passphrase)?
В целях безопасности надежные SSH-ключи создаются с парольной фразой (Passphrase). Однако если вы подключаетесь к серверам или отправляете код в Git по 50 раз в день, постоянный ввод пароля отнимает время. Фоновая служба ssh-agent позволяет ввести пароль всего один раз при включении компьютера, сохранив расшифрованный ключ в защищенной оперативной памяти.
Пошаговое подключение ssh-agent и ssh-add
- Запустите агент SSH в фоновом режиме:
eval "$(ssh-agent -s)"В ответ терминал выведет идентификатор запущенного агента:
Agent pid 12345. - Добавьте ваш приватный ключ в агент:
# Для стандартного ключа Ed25519: ssh-add ~/.ssh/id_ed25519 # Либо для классического RSA: ssh-add ~/.ssh/id_rsa - Введите парольную фразу от ключа один раз:
Терминал запросит:Enter passphrase for /home/user/.ssh/id_ed25519:. Введите пароль. После этого появится надписьIdentity added. - Проверьте добавленные ключи:
ssh-add -l
Автоматизация: Чтобы не запускать агент вручную при каждом открытии терминала, добавьте команду eval "$(ssh-agent -s)" > /dev/null 2>&1 в ваш файл ~/.bashrc.
Частые вопросы (FAQ)
Как удалить все сохраненные ключи из памяти ssh-agent?
Выполните команду `ssh-add -D`. Она полностью сотрет все расшифрованные ключи из текущей памяти агента.
Работает ли ssh-agent на macOS и сохраняет ли пароль в Keychain?
Да, на macOS используйте ключ `-K` или параметр `--apple-use-keychain`: `ssh-add --apple-use-keychain ~/.ssh/id_ed25519`.
Что делать, если ssh-add пишет Could not open a connection to your authentication agent?
Это означает, что сам демон агента не запущен. Сначала выполните `eval "$(ssh-agent -s)"`, а затем повторяйте команду `ssh-add`.
Безопасно ли хранить ключ в ssh-agent?
Да, ключ хранится только в оперативной памяти текущего сеанса пользователя и не записывается на жесткий диск в открытом виде.