Я установил свой закрытый ключ SSH ~/.ssh/id_rsa
и установил его права доступа 0600
. Когда я подключаюсь к SSH-серверу, который использует мой закрытый ключ в Terminal.app через ssh
, появляется диалоговое окно с просьбой ввести пароль для доступа к id_rsa
файлу:
Я вижу тот же диалог при подключении к FTP-серверу с клиентом Interarchy GUI.
Обновление: я вижу этот диалог каждый раз, когда я подключаюсь, независимо от того, проверяю ли я «Запомнить пароль в моей цепочке для ключей». Он появляется еще два раза, если нажать кнопку ОК, независимо от того, что введено в поле пароля.
Когда я ослабляю эти разрешения, скажем, 0640
я больше не вижу диалоговое окно, спрашивающее меня о моем пароле, но ssh
прерывается со следующей ошибкой:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @ ПРЕДУПРЕЖДЕНИЕ: незащищенный частный ключевой файл! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ Разрешения 0640 для '/Users/myusername/.ssh/id_rsa' слишком открыты. Рекомендуется, чтобы ваши файлы закрытых ключей НЕ были доступны другим. Этот закрытый ключ будет игнорироваться. плохие разрешения: игнорировать ключ: /Users/myusername/.ssh/id_rsa
Я нахожу диалоговое окно с паролем чрезвычайно раздражающим, и я уверен, что должен быть какой-то способ избежать необходимости закрывать это диалоговое окно, которое необходимо SSH для доступа к id_rsa
файлу.
Примечание: я использую Mac OS X 10.6.8.
источник
Сначала запустите
ssh-add -K
и проверьте, решает ли это вашу проблему.Если не:
Удалил файл rsa_id.pub и восстановил новый (должен быть в ~ / .ssh /):
Гарантированные разрешения были установлены на 600 как для id_rsa, так и для id_rsa.pub (должно быть в ~ / .ssh /):
Запустил следующую команду:
После этого мне больше не предлагалось вводить пароль для личного ключа. Это, кажется, фактически помещает пароль закрытого ключа в правильное местоположение цепочки для ключей для использования OS X.
источник
chmod 600
(вместо 644), чтобы оно заработалоssh-add -K
решил мою проблемуВ моем случае
ssh-add -K
не сработало, мне пришлось указать ключ:источник
-K
выбора Ваше решение исправило это. Интересно, почему мне нужно было это сделать. Никогда не было никаких запросов пароля.-K
флаг работал для меня на Сьерре 10.12.2Для macOS 10.12 Sierra
ssh-add -K
необходимо запускать после каждой перезагрузки. Чтобы избежать этого, создавайте~/.ssh/config
с этим контентом.Apple добавила Technote 2449, который объясняет, что произошло.
Редактировать: очевидно, указывать хост и ключ не обязательно. Просто добавить этого достаточно.
источник
AddKeysToAgent
на верхний уровень~/.ssh/config
.Вы должны где-то ввести фразу-пароль для закрытого ключа, и OS X по умолчанию использует ssh-agent.
Если вы хотите использовать ssh-agent, но хотите избежать диалогового окна с графическим интерфейсом, вы можете использовать ssh-add для добавления ключевой фразы к агенту, а затем ssh как обычно.
Если вы не хотите использовать ssh-agent и вместо этого у вас есть ssh-приглашение для ключевой фразы, тогда снимите значение с переменной окружения SSH_AUTH_SOCK.
источник
ssh-add -K
мне не нужно вводить пароль для подключения, но приглашение все равно появляется; Я просто отклонил это.Когда вы ослабляете права доступа, ключ игнорируется. Вы ничего не получите, делая это.
Если вы хотите использовать ключ без необходимости каждый раз вводить пароль, у вас есть два варианта.
Если вы отметите «Запомнить пароль в моей цепочке для ключей», вам не нужно будет каждый раз вводить пароль: он будет храниться в цепочке для ключей со всеми вашими другими паролями. Это рекомендуемый вариант.
Вы можете создать файл с закрытым ключом без пароля. Вы можете изменить существующий файл закрытого ключа, чтобы он не был защищен паролем (изменение пароля влияет только на файл ключа, но не на сам ключ). В командной строке выполните команду run
ssh -p
, введите существующую фразу-пароль и оставьте новую фразу-пароль пустым. Существует пустая парольная фраза, представляющая угрозу безопасности: любой, кто может получить доступ к вашему файлу закрытого ключа (например, к вашим резервным копиям), может использовать его немедленно.источник
если вы добавили свой закрытый ключ в исходный каталог ~ / .ssh и ввели ssh-add -K, чтобы добавить его в цепочку для ключей, и содержимое вашего открытого ключа скопировано в .ssh / authorized_keys (для правильного account) файл на целевом сервере, диалоговое окно исчезает.
это сложная комбинация файлов, разрешений, местоположений и команд, поэтому на это может потребоваться время. я бы не спешил с выводом об ошибках.
источник
У меня точно такая же проблема на Lion (Mac OS X 10.7). Я думаю, это ошибка ... Если аутентификация ssh является паролем, клиент сначала проходит через открытый ключ, что нормально. Однако, даже если вы решите сохранить ключевую фразу в цепочке для ключей (которая не требуется для аутентификации по паролю) в следующий раз, когда будет установлено новое ssh-соединение, вас снова попросят ввести ключевую фразу ...
источник
Не должно быть необходимости восстанавливать ваши открытые ключи. Вы можете просто сделать эти две команды:
По сути, вам необходимо ужесточить права доступа к файлу открытого ключа и добавить свой ключ в агент аутентификации OSX.
источник
В последней версии macOS (10.12.2 - Sierra) это легко исправить. Просто отредактируйте ~ / .ssh / config и включите опцию UseKeychain:
Сохранить и решить.
источник
Эта проблема возникла в моей системе OS X 10.7.4, когда умер ssh-agent. Перезагрузка исправила проблему. (Вы можете попробовать перезапустить ssh-agent, но я не знаю, достаточно ли у меня цепочка для ключей, чтобы поднять новый сокет ssh-agent.)
источник
Убедитесь, что ~ / .ssh / - это chmod 700.
Убедитесь, что оба файла ~ / .ssh / id * имеют формат chmod 600.
Запустите / Applications / Utilities / Keychain Access.app и восстановите связку ключей.
Выйти. (Перезагрузка не будет ужасной идеей)
Авторизоваться
Если проблема не устранена, переместите существующие файлы ~ / .ssh / id * на рабочий стол и попробуйте сгенерировать новые ключи с помощью
ssh-keygen -t dsa -f ~/.ssh/id_dsa -C you@youremail.tld
и посмотрите, работают ли новые ключи лучше.Я на льве, но IIRC Snow Leopard работал так же.
ps - любой, кто предлагает использовать пустую парольную фразу ssh, должен быть вынужден носить знак, чтобы другие люди знали, что не следует советоваться с ними.
источник
Регенерация открытого ключа, похоже, не работает для меня (10.8) и генерация нового ключа SSH. Если я, например, запускаю git pull после блокировки цепочки ключей входа в систему, появляется диалоговое окно с запросом пароля для ключа вместо первой попытки извлечь пароль из цепочки ключей входа в систему.
Однако, если я сначала убью ssh-agent, мне будет предложено ввести пароль цепочки для ключей входа в систему, который затем получит пароль ключа SSH.
источник
Еще один интересный вывод: если вы копируете и вставляете содержимое файла PEM, возможно, в конце нет пропущенной черты. Так что просто не забудьте добавить последнюю строку как,
источник
Я должен был сделать следующие шаги, чтобы заставить это работать.
Последняя команда должна затем вывести что-то вроде:
Hi <user>! You've successfully authenticated, but GitHub does not provide shell access.
источник
У меня такая же проблема. Я, кажется, исправил это, делая это.
1) Резервное копирование путем переименования в старые файлы id_dsa и id_dsa.pub.
2) Запустил новый кейген с пустой парольной фразой.
Работает с заданием за период запуска, отслеживая удаленный сервер, а также входя в систему из ssh в терминале.
У меня в терминале есть функция быстрой функции authme, так как в моем .bash_profile есть следующее
Таким образом, быстрый authme remoteserver.com скопирует новый удаленный ключ.
Я думаю, что ошибка связана с тем, что парольная фраза не была преобразована (у моего старого Snow Leopard ее вообще не было).
Попробуйте и посмотрите, поможет ли это.
Это заняло не более 10 минут. Я потратил на поиски в интернете навсегда, чтобы увидеть, есть ли другие упоминания об этом. Этот сайт был единственным!
Оуайн.
источник
У меня была похожая проблема. Оказалось, что закрытый ключ, который я использовал, был в неправильном формате. Я использовал PuTTY Key Generator на моей машине Win, и ssh на OS X ожидает другой формат - открытый формат SSH.
Оказалось, что инструмент, который я использовал для генерации этого ключа (PuTTY Key Generator), имел возможность преобразовать мой секретный ключ в формат, требуемый Open SSH.
Просто как:
Файл, который вы сохраните, содержит ваш оригинальный закрытый ключ в правильном (OpenSSH) формате.
источник
Пожалуйста, убедитесь, что:
Надеюсь, это должно решить проблему.
источник
Используйте ключ .pem вместо ключа .ppk.
источник