OS X Keychain продолжает запрашивать у меня пароль SSH, хотя я и сохраняю его (OS X 10.6.8) [дубликат]

20

Каждый раз, когда я вхожу на удаленный сервер с SSH, брелок OS X предлагает мне запомнить пароль SSH. Я набираю парольную фразу и ставлю флажок, чтобы запомнить ее. Затем я подключаюсь нормально к серверу, но в следующий раз мне снова предлагают и так далее ...

У меня есть закрытый ключ для SSH на моем сервере, и соединение работает. В моем файле hosts у меня есть:

Host myhost
    HostName xxx.xxx.xxx.xx
    GlobalKnownHostsFile ~/.ssh/known_hosts
    port 22
    User myuser
    IdentityFile ~/.ssh/mykey_dsa
    IdentitiesOnly yes

.. а потом я печатаю ssh myhost

Это только недавняя проблема, поэтому я подозреваю и проблема с брелок? Чтобы было ясно, я могу «заново добавлять» брелок каждый раз и подключаться, но это не соответствует цели. Права доступа к моему ключу dsa установлены на 600 или-rw-------@

Я пытался восстановить права доступа к диску, но это не помогло. Мой гугл-фу тоже меня подводит, ничего полезного не получилось. Поэтому я не уверен, является ли это проблемой OS X / цепочки для ключей или SSH.

обновление: когда я пытаюсь ssh -vvv myhost, я думаю, что это выявляет проблему:

debug1: Trying private key: /Users/danny/.ssh/mykey_dsa
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug3: Not a RSA1 key file /Users/danny/.ssh/mykey_dsa.
debug1: read PEM private key done: type DSA
Identity added: /Users/danny/.ssh/mykey_dsa (/Users/danny/.ssh/mykey_dsa)
debug1: read PEM private key done: type DSA
debug3: sign_and_send_pubkey
debug2: we sent a publickey packet, wait for reply
debug1: Authentication succeeded (publickey).

... и после этого я подключаюсь. Я думаю, что суть вопроса в следующем:

PEM_read_PrivateKey failed

Обновление 2: после того, как попробовал тот же ключ и настройки на другом Mac с 10.6.8, все работало нормально, поэтому я думаю, что это специфический вопрос для Mac, возможно, проблема с цепочкой ключей для разрешений.

Обновление 3 Я также попробовал чистую установку Mountain Lion (10.8.1) и, увы, ту же проблему, которую я полностью не получаю.

Возможно связано: https://discussions.apple.com/thread/3518441?start=0&tstart=0

Обновление 4 Это ответ

Дэнни Энгландер
источник
1
Попробуйте ssh -v[v] myserverполучить подробную информацию об ошибке.
@ansi_lumen Я попробовал ssh -vvv и опубликовал результаты выше. Я думаю, что проблема в том, PEM_read_PrivateKey failedно я не знаю почему, я сгенерировал этот ключ, как и все мои другие, которые добавляются в цепочку для ключей и остаются там.
Дэнни Энгландер
1
Это исправило это для меня: apple.stackexchange.com/a/26252/17690
Дэнни Энгландер,
2
ssh-add -Kисправил это для меня
orkoden

Ответы:

13

Ответ скопирован с /apple//a/26252/17690


Убедитесь, что у вас есть соответствующий id_rsa.pubили id_dsa.pubв вашем ~/.sshкаталоге.

Когда у меня был, id_rsaно не соответствовал id_rsa.pub, Mac OS X продолжал появляться в диалоговом окне и помнить, что passowrd в моей связке ключей ничего не делал.

cd ~/.ssh
ssh-keygen -y -f id_rsa > id_rsa.pub

сгенерировал соответствующий файл открытого ключа для меня.

Если у вас уже есть ваш открытый файл (переименуйте его в другое имя) и снова сгенерируйте открытый ключ с помощью приведенной выше команды, вы заметите, что сгенерированный и старый не совпадают. Каким-то образом более старые версии Mac OS X генерировали открытый ключ, который Lion больше не нравится, генерируя его снова, это исправляет.

Для любопытных ключ точно такой же, часть, которая меняется, заключается в том, что после ключа в файле нет раздела «комментарии».

TalkLittle
источник
Это помогло мне получить часть пути, но я также вставил закрытый ключ, и он не был разделен на пустые места, все было в одной строке. После решения этой проблемы была решена та же проблема, что и у OP.
Кэмерон Ганьон