Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

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

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?

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