MacOS продолжает задавать мою кодовую фразу ssh, так как я обновляюсь до Sierra

Раньше он запоминал кодовую фразу, но теперь он спрашивает ее каждый раз.

Я прочитал, что мне нужно восстановить открытый ключ с помощью этой команды, которую я сделал:

ssh-keygen -y -f id_rsa > id_rsa.pub 

Но ничего не исправить.

Как я могу заставить macOS снова вспомнить мою кодовую фразу?

В последней версии macOS (10.12.2) это легко исправить. Просто отредактируйте свой файл ~/.ssh/config и включите опцию UseKeychain :

 Host * UseKeychain yes 

Не нужно ничего менять. Теперь все работает так, как раньше работало до последних обновлений. Вам не нужно добавлять ключи к ssh-agent .


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

У меня такая же проблема. MacOS Sierra keychain продолжает запрашивать кодовую фразу. Ваш id_rsa должен быть зашифрован парольной фразой для обеспечения безопасности. Затем попробуйте добавить его в ssh-add -K ~/.ssh/id_rsa ключей ssh-add -K ~/.ssh/id_rsa

Если ваш ключ находится в другой папке, чем ~/.ssh то замените нужную папку.

Брелок теперь знает ваш ssh-ключ и, надеюсь, все работает сейчас (мой сделал)

Это фиксировало мою аналогичную проблему:

 ssh-add -K 

Это хранит парольные фразы в цепочке ключей.

Мне только нужно было ввести правильную кодовую фразу, и она начала работать. Проблема состояла в том, что я не помнил свою исходную кодовую фразу SSH, но я ее восстановил, выполнив следующие шаги из Github:

  • В Finder найдите приложение Keychain Access.
  • В Keychain Access найдите SSH.
  • Дважды щелкните запись для своего ключа SSH, чтобы открыть новое диалоговое окно.
  • Диалог доступа к цепочке ключей В нижнем левом углу выберите «Показать пароль».
  • Вам будет предложено ввести пароль администратора. Введите его в диалоговое окно «Keychain Access».
  • Ваш пароль будет раскрыт.

Ни один из вышеперечисленных решений не работал после установки Sierra над El Capitan на новом MacBook Pro. Сьерра по дизайну не сохраняет ключи SSH в брелках.

Для меня работали два решения. Один из них – добавить команду ssh-add -A &> /dev/null в ~ / .bash_profile. Каждый раз, когда вы открываете терминал, эта команда будет выполнена (часть &> /dev/null отправляет результат команды файл / dev / null).

Более сложное, но слегка slicker решение заключается в создании plist с командой, которая выполняется каждый раз, когда ОС загружается, как предложено в Сохранение SSH-ключей в macOS Sierra keychain . Это связано с использованием Xcode для создания файла.

Одно исправление заключается в добавлении следующего в ваш файл ~ / .ssh / config:

 Host * AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa UseKeychain yes 

Снято с: https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ Также см .: https://apple.stackexchange.com/a/264974/3810

Сегодня утром у меня была такая же проблема, как после обновления до Сьерры. В моем случае файл id_rsa был зашифрован, и после дешифрования он работал как шарм.

  1. Убедитесь, что ваш файл id_rsa зашифрован с помощью следующей команды: cat ~/.ssh/id_rsa | head -2 cat ~/.ssh/id_rsa | head -2
  2. Если во второй строке указано Proc-Type: 4,ENCRYPTED , она зашифрована, и вы можете попробовать ее расшифровать
  3. Важно: сделайте резервную копию исходного файла id_rsa ! Используйте команду cp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
  4. Расшифруйте свой закрытый ключ с помощью openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
  5. Удалите исходный ключ ( rm ~/.ssh/id_rsa ) и замените его расшифрованным: mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa

После этих шагов вы сможете снова использовать ssh.

У меня возникла и эта проблема при попытке развернуть код с помощью Capistrano . Очень расстраивает. Вот два метода, которые я знаю для решения этой проблемы.

Способ 1. Добавьте все известные ключи к агенту SSH.

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

 ssh-add -A 

Теперь это работает, но не будет повторяться перезагрузки. Поэтому, если вы хотите больше не беспокоиться об этом, просто откройте файл ~/.bash_profile вашего пользователя следующим образом:

 nano ~/.bash_profile 

И добавьте эту строку в конец:

 ssh-add -A 2>/dev/null; 

Теперь, когда вы открываете новое окно терминала, все должно быть хорошо!

Способ 2. Добавьте только ключи SSH, которые находятся в цепочке ключей к агенту.

Поэтому, когда опция ssh-add -A должна работать для большинства основных случаев, я столкнулся с проблемой недавно, когда у меня было 6-7 бранных коробок (которые используют SSH-ключи / идентификаторы для доступа) на машине поверх более распространенных id_rsa.pub на месте.

Короче говоря, я оказался заблокированным из удаленного сервера из-за слишком многих неудачных попыток на основе SSH-ключей / идентификаторов, поскольку доступ к серверу был основан на пароле, а ключи / идентификаторы SSH – это SSH-ключи / идентификаторы. Таким образом, агент SSH попробовал все мои SSH-ключи, не удалось, и я даже не мог получить приглашение пароля.

Проблема в том, что ssh-add -A будет просто произвольно добавлять каждый отдельный ключ / идентификатор SSH, который у вас есть, даже если это не обязательно; Например, в случае бродячих коробок.

Мое решение после долгих испытаний было следующим.

Во-первых, если у вас есть больше ключей / удостоверений SSH, добавленных в ваш агент, чем вам нужно – как показано с помощью ssh-add -l затем очистите их от агента следующим образом:

 ssh-add -D 

После этого запустите агент SSH как фоновый процесс, например:

 eval "$(ssh-agent -s)" 

Теперь это странно, и я не слишком уверен в этом. В некоторых случаях вы можете специально добавить ключ / идентификатор ~/.ssh/id_rsa.pub к агенту, например:

 ssh-add ~/.ssh/id_rsa.pub 

Введите свою кодовую фразу, нажмите « Возврат», и вам должно быть хорошо идти.

Но в других случаях просто запустить это достаточно, чтобы добавить ключ / идентификатор:

 ssh-add -K 

Если все это сработало, введите ssh-add -l и вы увидите один одиночный SSH-ключ / идентификатор.

Все хорошо? Теперь откройте свой .bash_profile :

 nano ~/.bash_profile 

И добавьте эту строку в нижнюю; Комментарий или удалить версию -A если у вас это есть:

 ssh-add -K 2>/dev/null; 

Это позволит перезагрузить SSH-ключ / идентификатор агента SSH при каждом запуске / перезагрузке.

UPDATE: теперь Apple добавила опцию UseKeychain в открытые параметры конфигурации SSH и рассматривает ssh-add -A решение.

Что касается macOS Sierra 10.12.2, Apple (предположим) добавила UseKeychain конфигурации UseKeychain конфигураций SSH. Проверка man-страницы (через man ssh_config ) показывает следующую информацию:

 UseKeychain On macOS, specifies whether the system should search for passphrases in the user's keychain when attempting to use a par- ticular key. When the passphrase is provided by the user, this option also specifies whether the passphrase should be stored into the keychain once it has been verified to be correct. The argument must be ``yes'' or ``no''. The default is ``no''. 

Это сводится к тому, что Apple видит решение как добавление ssh-add -A в ваш .bash_profile как описано в этом билете Open Radar, или добавление UseKeychain качестве одного из параметров в каждом пользователе ~/.ssh/config .

Ответ Jukka Suomela верен, но если вы используете openssh установленный из homebrew , вам также необходимо удалить его с помощью:

 brew remove openssh 

… чтобы вернуться к системному умолчанию openssh, потому что homebrew's не поддерживает UseKeychain ssh.

Я попробовал все предлагаемые здесь решения, но у меня нет привязки к цепочке ключей на моем Mac.

Добавление в следующую строку вверху .ssh/config файл .ssh/config на локальном и удаленном компьютере сработало для меня.

 PubkeyAcceptedKeyTypes=+ssh-dss 

Я попробовал несколько ответов здесь, но все еще имел проблемы с передачей удаленных ключей (например, при использовании capistrano). Чтобы решить эту проблему, я прочитал технот из apple и сделал этот файл конфигурации. Больше не нужно мой пароль!

https://developer.apple.com/library/content/technotes/tn2449/_index.html

 Host * IdentityFile ~/.ssh/id_rsa IgnoreUnknown UseKeychain UseKeychain yes AddKeysToAgent yes 

Вам нужен файл .plist добавленный в ~/Library/LaunchAgents/ для запуска ssh-add -A при каждом запуске macOS.

Есть одна команда, которая делает это (из SSH-keys-in-macOS-Sierra-keychain ), которая:

 curl -o ~/Library/LaunchAgents/ssh.add.a.plist https://raw.githubusercontent.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain/master/ssh.add.a.plist 

Я пробовал несколько разных методов, упомянутых во всем Интернете, но просто делал следующее исправление проблемы.

 ssh-add -K 
  • Как удалить парольные фразы ключей SSH из памяти Mac OS?
  • Ssh зависает при попытке подключения к некоторым хостам
  • Как git клонировать частные репозитории в Vagrant VM, используя ключи SSH хоста?
  • Как заставить ssh войти в качестве нужного пользователя?
  • Как заставить git не запрашивать парольную фразу для ssh-ключа на окнах?
  • Как я могу удаленно уничтожить части своего жесткого диска Macbook?
  • PubkeyAcceptedKeyTypes и тип ключа ssh-dsa
  • Удаленный доступ emacs к моему основному компьютеру
  • Есть ли способ, чтобы один конфигурационный файл SSH включал другой?
  • Не удается получить доступ к виртуальной машине VMware через SSH
  • SSH Обратный тоннель
  • Давайте будем гением компьютера.