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.

Почему это произошло?

135 голосов | спросил アレックス 1 J000000Tuesday14 2014, 06:09:50

3 ответа


158

Добавление ключей к агенту является временным. Они продолжаются только до тех пор, пока агент работает. Если вы его убьете или перезагрузите, они потеряются, пока вы снова не добавите их снова. На странице 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) запрашивает        passphrase на терминале, если он имеет одну или из небольшой программы X11, если она работает под X11. Если это не так, аутентификация завершится неудачно. Затем он отправляет идентификатор агенту. В агенте могут храниться несколько идентификаторов; агент может автоматически использовать        любой из этих тождеств. ssh-add -l отображает идентификаторы, которые в настоящее время хранятся агентом.

macOS Sierra

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

Host *
  UseKeychain yes

Брелок OSX

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

  

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

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

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

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

  

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

  ssh-add -l

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

ответил slm 1 J000000Tuesday14 2014, 06:18:04
17

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, который вы используете.

ответил Pavel Šimerda 1 J000000Tuesday14 2014, 10:55:04
5

В Sierra :

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

или

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

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

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

ответил David Winiecki 8 Jam1000000amSun, 08 Jan 2017 08:23:46 +030017 2017, 08:23:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132