ssh-add не поддерживается между перезагрузками

Я добавляю ключ ssh к агенту

$ ssh-add ~/.ssh/id_rsa_mac Identity added: /Users/alex/.ssh/id_rsa_mac (/Users/alex/.ssh/id_rsa_mac) 

После перезагрузки я больше не добавляю этот ключ:

 $ ssh-add -l The agent has no identities. 

В чем причина?

  • monkeysphere to gnupg 2.1 изменение рабочего процесса
  • Двойная переадресация портов - SSH
  • Как использовать ssh-agent для предоставления ключей, специфичных для хоста, из файла ~ / .ssh / config и управления паролями?
  • Как я могу предупредить ssh-agent при использовании определенного ключа?
  • OSX ssh-add -K не работает для iMac
  • Запускать ssh-agent 24/7 с помощью брелка?
  • Как остановить использование ssh-agent?
  • ssh-agent не настроен (SSH_AUTH_SOCK, SSH_AGENT_PID env vars не установлен)
  • 3 Solutions collect form web for “ssh-add не поддерживается между перезагрузками”

    Добавление ключей к агенту является временным. Они продолжаются только до тех пор, пока агент работает. Если вы его убьете или перезагрузите, они потеряются, пока вы снова не добавите их снова. На странице man ssh-agent :

    ssh-agent – это программа для хранения закрытых ключей, используемых для аутентификации с открытым ключом (RSA, DSA, ECDSA). Идея заключается в том, что ssh-agent запускается в начале сеанса X-сеанса или сеанса входа в систему, а все остальные окна или программы запускаются как клиенты в программу ssh-agent. Благодаря использованию переменных среды агент может быть расположен и автоматически использоваться для аутентификации при входе на другие машины с помощью ssh (1).

    У агента сначала нет закрытых ключей. Ключи добавляются с помощью ssh-add (1). Когда выполняется без аргументов, ssh-add (1) добавляет файлы ~/.ssh/id_rsa , ~/.ssh/id_dsa , ~/.ssh/id_ecdsa и ~/.ssh/identity . Если идентификатор имеет кодовую фразу, ssh-add (1) запрашивает кодовую фразу на терминале, если она имеет одну или из небольшой программы X11, если она работает под X11. Если это не так, аутентификация завершится неудачно. Затем он отправляет идентификатор агенту. В агенте могут храниться несколько идентификаторов; агент может автоматически использовать любую из этих идентификационных данных. ssh-add -l отображает идентификаторы, которые в настоящее время хранятся агентом.

    macOS Sierra

    Начиная с macOS Sierra 10.12.2 , Apple добавила опцию конфигурации UseKeychain для конфигураций SSH. Вы можете активировать эту функцию, добавив UseKeychain yes в ваш ~/.ssh/config .

     Host * UseKeychain yes 

    OSX Keychain

    Я не использую OSX, но нашел это Q & A на SuperUser под названием: Как использовать Keychain для Mac OS X с ключами SSH? ,

    Я понимаю, что с Mac OS X Leopard Keychain поддерживает сохранение ключей SSH. Может кто-то объяснить, как эта функция должна работать.

    Поэтому из-за звука вы можете импортировать свои SSH-ключи в Keychain, используя следующую команду:

     $ ssh-add -K [path/to/private SSH key] 

    После этого ваши ключи должны сохраняться при загрузке.

    Всякий раз, когда вы перезагружаете Mac, все ключи SSH в вашей брелка будут автоматически загружены. Вы должны иметь возможность видеть ключи в приложении Keychain Access, а также из командной строки через:

      ssh-add -l 

    Источник: Super User – Как использовать брелок для ключей Mac OS X с ключами SSH?

    Конечно, это не является постоянным, ssh-agent – это служба сеанса, которая временно хранит ключи для пользователя.

    Основная цель агента SSH – запомнить версию открытого ключа ключа, защищенного с использованием кодовой фразы. Другими словами, ключ хранится на диске, зашифрованном с использованием парольной фразы, и владелец ключа использует ssh-add или некоторый инструмент GUI для предоставления кодовой фразы и инструктирует агента запомнить его до тех пор, пока сеанс не завершится или пользователь не будет явно удалять пользователя ,

    Если вы не используете кодовую фразу, и вы не используете переадресацию агента (что в любом случае небезопасно для большинства целей), вам совсем не нужен агент . Любой клиент SSH должен иметь возможность считывать ключ с диска, либо из стандартного местоположения, либо из явно определенных.

    Стандартные местоположения указаны на странице руководства ssh(1) :

    По умолчанию используется протокол ~ / .ssh / identity для протокола версии 1 и ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa, ~ / .ssh / id_ed25519 и ~ / .ssh / id_rsa для протокола версии 2.

    При использовании нестандартных местоположений вы можете использовать ключ -i для ssh описанный на той же странице руководства, или соответствующую опцию в используемом вами SSH-клиенте.

    В Сьерра :

    Используйте UseKeychain . (Я не пробовал это, но это похоже на самое правильное решение.)

    Или

     ssh-add -K /your/key echo ssh-add -A | cat >> ~/.bash_profile 

    Или создайте файл plist вместо добавления к ~/.bash_profile .

    Отказ от ответственности: как отмечали другие, я не знаю, насколько безопасно хранить sph-фразу в цепочке ключей.

    Linux и Unix - лучшая ОС в мире.