Раньше он запоминал парольную фразу, но теперь спрашивает ее каждый раз.
Я прочитал, что мне нужно восстановить открытый ключ с помощью этой команды, которую я сделал:
ssh-keygen -y -f id_rsa > id_rsa.pub
но это ничего не исправило.
Как я могу заставить macOS снова запомнить мою пароль?
ssh
включен модульzpretzorc
. В любом случае, в macOS это не нужно, и, если оно включено, оно будет запрашивать вашу пароль даже после добавленияUseKeychain
.ssh -v ...
чтобы увидеть, есть ли у него полезная информация отладки ...Ответы:
В последней версии macOS (10.12.2) это легко исправить. Просто отредактируйте
~/.ssh/config
и включитеUseKeychain
опцию:Больше не нужно ничего менять. Теперь все работает так, как раньше, до последних обновлений. Вам не нужно добавлять ключи к
ssh-agent
.Редактировать: Вам все равно может понадобиться ввести пароль один раз. Если вы этого не знаете, следуйте этим инструкциям, чтобы раскрыть это.
источник
Host *
блок должен (почти) всегда располагаться внизу вашего~/.ssh/config
файла. Когдаssh
ищет настройки, он использует первое найденное значение. Таким образом, помещая блок подстановки в конце, он действует как набор значений по умолчанию; Вы можете переопределить настройки для определенных хостов, указав их ранее в файле.Host *
заголовок. Просто добавьте одну строкуUseKeychain yes
вверху,.ssh/config
если вы хотите, чтобы это применялось ко всем хостам.У меня такая же проблема. MacOS Sierra связка ключей продолжает запрашивать пароль. Ваш id_rsa должен быть зашифрован парольной фразой для безопасности. Затем попробуйте добавить его в цепочку для ключей
ssh-add -K ~/.ssh/id_rsa
Если ваш ключ находится в другой папке,
~/.ssh
то замените его на правильную папку.Keychain теперь знает ваш ключ ssh и, надеюсь, теперь все работает (мой сделал)
источник
ssh-add
с этой-A
опцией будет искать в цепочке ключей MacOS любые пароли для рассматриваемых идентификаторов. Я полагаю, это подскажет вам, если пароли не находятся в цепочке для ключей.Это исправило мою похожую проблему:
Это хранит пароли в вашей цепочке для ключей.
Обновление (спасибо @EasyCo): это работает, но не сохраняется между перезапусками. @ решение Юкки-Суомел на этой странице действительно работает перезапуск. Вы можете найти этот ответ здесь:
https://superuser.com/a/1158050/234685
источник
Мне нужно было ввести правильный пароль только один раз, и он начал работать. Проблема заключалась в том, что я не запомнил исходную парольную фразу SSH, но восстановил ее, выполнив следующие действия из Github:
источник
Ни одно из вышеперечисленных решений не сработало после установки Sierra поверх El Capitan на новый MacBook Pro. Sierra по своему дизайну не сохраняет ключи SSH в цепочке для ключей.
Два решения работали для меня. Один из них - добавить команду
ssh-add -A &> /dev/null
в ~ / .bash_profile. Каждый раз, когда вы открываете терминал, эта команда будет выполняться (&> /dev/null
часть отправляет вывод команды в файл / dev / null).Более сложное, но немного более простое решение - создать список с командой, которая выполняется каждый раз при загрузке ОС, как это предлагается в разделе Сохранение ключей SSH в цепочке ключей MacOS Sierra . Это включает использование Xcode для создания файла.
источник
Одним из исправлений является добавление следующего в ваш файл ~ / .ssh / config:
Взято из: https://www.reddit.com/r/osx/comments/52zn5r/difficulty_with_sshagent_in_macos_sierra/ Также см .: https://apple.stackexchange.com/a/264974/3810
источник
Bad configuration option: usekeychain
ошибке, которую я получаю с UseKeychain (однако она написана с большой буквы). Но я был в состоянии заставить его работать, удаляя только эту линию и оставляя AddKeysToAgent и IdentityFile (вы все равно должны ввести ключевую фразу в первый раз). Это с macOS Sierra 10.12.6.which ssh
чтобы убедиться, что вы используете,/usr/bin/ssh
а не версию от Fink или MacPorts, которая будет находиться под чем-то вроде/usr/local/bin/ssh
или/opt/local/bin/ssh
Этим утром у меня возникла та же проблема, что и у вас после обновления до Sierra. В моем случае
id_rsa
файл был зашифрован, и после расшифровки он работал как брелок.id_rsa
файл зашифрован с помощью следующей команды:cat ~/.ssh/id_rsa | head -2
Proc-Type: 4,ENCRYPTED
, что она зашифрована, и вы можете попробовать расшифровать ееid_rsa
файла! Используйте командуcp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
rm ~/.ssh/id_rsa
) и замените его расшифрованным:mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa
После этих шагов вы сможете снова использовать ssh.
источник
Я попробовал несколько ответов здесь, но все еще были проблемы с передачей удаленных ключей (например, при использовании capistrano). Чтобы решить эту проблему, я прочитал technote от apple и сделал этот мой конфигурационный файл. Больше не спрашиваю мой пароль!
https://developer.apple.com/library/content/technotes/tn2449/_index.html
источник
У меня также была эта проблема при попытке развернуть некоторый код с помощью Capistrano . Очень расстраивает. Вот два известных мне метода решения этой проблемы.
Способ 1. Добавьте все известные ключи к агенту SSH.
Таким образом, одно решение, которое я нашел, - это запустить
ssh-add
с-A
опцией, которая добавляет все известные идентификаторы к агенту SSH, используя любые парольные фразы, хранящиеся в вашей цепочке для ключей, например:Теперь это работает, но не будет сохраняться при перезагрузке. Так что если вы хотите больше никогда не беспокоиться об этом, просто откройте
~/.bash_profile
файл вашего пользователя, например так:И добавьте эту строку внизу:
Теперь, когда вы открываете новое окно терминала, все должно быть хорошо!
Способ 2. Добавьте к агенту только ключи SSH, которые находятся в цепочке для ключей .
Таким образом, хотя эта
ssh-add -A
опция должна работать для большинства основных случаев, я недавно столкнулся с проблемой, когда у меня было 6-7 ящиков Vagrant (которые используют ключи / идентификаторы SSH для доступа) на компьютере поверх более распространенногоid_rsa.pub
на месте.Короче говоря, я оказался заблокированным на удаленном сервере из-за слишком большого количества неудачных попыток на основе ключей / идентификаторов SSH, поскольку доступ к серверу был основан на пароле, а ключи / идентификаторы SSH являются ключами / идентификаторами SSH. Таким образом, агент SSH попробовал все мои ключи SSH, не удалось, и я даже не смог получить запрос пароля.
Проблема заключается в том, что
ssh-add -A
мы просто произвольно добавим каждый ваш ключ / идентификатор SSH к агенту, даже если в этом нет необходимости; такие как в случае бродячих коробок.Мое решение после большого тестирования было следующим.
Во-первых, если к вашему агенту добавлено больше ключей / идентификаторов SSH, чем нужно, как показано на рисунке,
ssh-add -l
затем удалите их все из агента следующим образом:После этого запустите агент SSH в качестве фонового процесса, например:
Теперь, это становится странным, и я не слишком уверен, почему. В некоторых случаях вы можете специально добавить
~/.ssh/id_rsa.pub
ключ / идентификатор к агенту следующим образом:Введите свой пароль, нажмите, Returnи вы должны быть в порядке.
Но в других случаях этого достаточно, чтобы добавить ключ / идентификатор:
Если это все сработало, введите,
ssh-add -l
и вы увидите один одиночный ключ SSH / идентификатор в списке.Все хорошо? Теперь откройте свой
.bash_profile
:И добавьте эту строку внизу; прокомментируйте или удалите
-A
версию, если она у вас есть:Это позволит перезагружать ключ / идентификатор SSH агенту SSH при каждом запуске / перезагрузке.
ОБНОВЛЕНИЕ: Apple теперь добавила
UseKeychain
параметр к открытым параметрам конфигурации SSH и также рассматриваетssh-add -A
решение.Начиная с macOS Sierra 10.12.2, Apple (я полагаю) добавил
UseKeychain
опцию конфигурации для настроек SSH. Проверка страницы руководства (черезman ssh_config
) показывает следующую информацию:Что сводится к тому, что Apple рассматривает решение как добавление
ssh-add -A
к вашему,.bash_profile
как описано в этом билете Open Radar, или добавление вUseKeychain
качестве одного из вариантов для каждого пользователя~/.ssh/config
.источник
Юкка Суомела «s ответ правильный, но если вы используете
openssh
установлены сhomebrew
, то вам необходимо удалить его с:... чтобы вернуться к системному стандартному openssh, потому что homebrew не поддерживает
UseKeychain
запись конфигурации ssh.источник
Я перепробовал все предложенные здесь решения, но у меня на Mac не установлена цепочка для ключей.
У
.ssh/config
меня сработало добавление следующей строки в верхний файл как на локальной, так и на удаленной машине.источник
Вам нужно добавить
.plist
файл~/Library/LaunchAgents/
для запускаssh-add -A
при каждом запуске macOS.Есть одна команда, которая делает это (из SSH-keys-in-macOS-Sierra-keychain ):
источник