Я добавил ключ 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.
Почему это случилось?
$HOME/.gnupg/private-keys-v1.d
как только вы добавите их с помощью ssh-add. Это действительно настойчиво. Хорошо, если у вас есть энергонезависимый домашний каталог.Ответы:
Добавление ключей к агенту является временным. Они действуют только до тех пор, пока агент работает. Если вы убьете его или перезагрузите компьютер, они будут потеряны, пока вы не добавите их снова. Со
ssh-agent
страницы руководства :macOS Сьерра
Начиная с macOS Sierra 10.12.2 , Apple добавила параметр конфигурации UseKeychain для настроек SSH. Вы можете активировать эту функцию, добавив
UseKeychain yes
в свой~/.ssh/config
.OSX Keychain
Я не использую OSX, но нашел этот вопрос и ответы на SuperUser под названием: Как использовать Mac OS X Keychain с ключами SSH? ,
Итак, по звуку вы можете импортировать ваши ключи SSH в связку ключей, используя эту команду:
Ваши ключи должны сохраняться от загрузки к загрузке.
Источник: Super User - Как использовать Mac OS X Keychain с ключами SSH?
источник
~/.ssh/id_rsa
. Я предполагаю, что это местоположение вашего ключевого файла в Linux. Также возможно, что вы не используете стандартный агент ключей ssh. Есть и другие, такие как gnome-keyring-daemon, которые могут иметь другое поведение.ssh-agent
добавляет ли классик какие-либо ключи автоматически. По моему мнению, это то,ssh-add
что читает стандартные местоположения, илиssh
клиент, если вы не используете агент./usr/bin/ssh-add -K /path/to/private/key
ssh-agent
Является службой сеанса , который хранит ключи временно для пользователя.Основное назначение агента SSH - запомнить версию ключа в открытом виде, защищенную парольной фразой. Другими словами, ключ хранится на диске в зашифрованном виде с использованием ключевой фразы, а владелец ключа использует
ssh-add
или какой-либо инструмент с графическим интерфейсом для предоставления ключевой фразы и инструктирует агента запоминать его до завершения сеанса или до тех пор, пока пользователь не запросит удаление явно.Если вы не используете парольную фразу и не используете переадресацию агента (что в большинстве случаев небезопасно), вам вообще не нужен агент . Любой клиент SSH должен иметь возможность считывать ключ с диска, либо из стандартного расположения, либо из явно указанных.
Стандартные местоположения перечислены на странице руководства
ssh(1)
:При использовании нестандартных расположений вы можете использовать
-i
переключатель,ssh
описанный на той же странице руководства, или соответствующую опцию в используемом SSH-клиенте.источник
ssh-agent
В Сьерре :
Используйте UseKeychain . (Я не пробовал это, но это звучит как самое правильное решение.)
Или же
Или создайте файл plist вместо добавления к
~/.bash_profile
.Отказ от ответственности: как уже отмечали другие, я не знаю, насколько безопасно хранить ssh пароли в цепочке для ключей.
источник