Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

SSH Agent: как перестать вводить пароль от ключа SSH (ssh-add)

Обновлено: 27.08.2026 · Официальная документация ↗

Устали каждый раз вводить кодовую фразу ключа (Passphrase)?

В целях безопасности надежные SSH-ключи создаются с парольной фразой (Passphrase). Однако если вы подключаетесь к серверам или отправляете код в Git по 50 раз в день, постоянный ввод пароля отнимает время. Фоновая служба ssh-agent позволяет ввести пароль всего один раз при включении компьютера, сохранив расшифрованный ключ в защищенной оперативной памяти.

Пошаговое подключение ssh-agent и ssh-add

  1. Запустите агент SSH в фоновом режиме:
    eval "$(ssh-agent -s)"

    В ответ терминал выведет идентификатор запущенного агента: Agent pid 12345.

  2. Добавьте ваш приватный ключ в агент:
    # Для стандартного ключа Ed25519:
    ssh-add ~/.ssh/id_ed25519
    
    # Либо для классического RSA:
    ssh-add ~/.ssh/id_rsa
  3. Введите парольную фразу от ключа один раз:
    Терминал запросит: Enter passphrase for /home/user/.ssh/id_ed25519:. Введите пароль. После этого появится надпись Identity added.
  4. Проверьте добавленные ключи:
    ssh-add -l

Автоматизация: Чтобы не запускать агент вручную при каждом открытии терминала, добавьте команду eval "$(ssh-agent -s)" > /dev/null 2>&1 в ваш файл ~/.bashrc.

💡 Практика специалистов: При работе через промежуточные jump-серверы используйте проброс агента (`ssh -A user@server`). Это позволяет безопасно подключаться к закрытым внутренним серверам без копирования приватного ключа на промежуточный узел.

Частые вопросы (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?

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

Полезные материалы
Рекомендуем