После обновления до Fedora 23 аутентификация без пароля (на основе открытого ключа) больше не работает в SSH: при попытке SSH к некоторому хосту он запрашивает мой пароль на удаленном хосте. Я не могу заставить его использовать мой закрытый ключ SSH. Все работало нормально с Fedora 22.
Мой открытый ключ - это ключ DSA ( ~/.ssh/id_dsa.pub
). Я использую OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64
).
Как я могу заставить аутентификацию без пароля снова работать правильно?
ssh -Q
. Это спрашивает, как устранить проблему отказа SSH. Я нашел некоторые материалы на сайте superuser.com/q/962918/93541 и в других местах, полезные для определения этого решения, но в ответе описывается, как его использовать,ssh -Q
и он не отвечает на этот вопрос (например, он не объясняет, как исправить это проблема), поэтому на мой взгляд это не дуп. Один на Unix и Linux является очень похожи; Хотел бы я видеть это раньше. Еще раз спасибо за ссылки!Ответы:
Это результат обновления до OpenSSH 7.0. Как сказано в примечаниях к выпуску OpenSSH 7.0 , «поддержка хоста и пользовательских ключей ssh-dss по умолчанию отключена во время выполнения».
Решение состоит в том, чтобы добавить следующую строку
~/.ssh/config
на каждом клиентском компьютере (на каждом компьютере, на котором вы запускаете SSH-клиент):Если сервер использует OpenSSH 7.0 или новее, вам также необходимо добавить эту строку
/etc/ssh/sshd_config
на каждом сервере.Кроме того, вы можете сгенерировать совершенно новый ключ SSH и добавить его в свой файл author_keys на каждом сервере, на котором вы когда-либо захотите войти. Я рекомендую вам использовать RSA , чтобы избежать проблем совместимости. Я не рекомендую ECDSA, так как, очевидно, gnome-keyring-daemon автоматически не получает ключи SSH типа ECDSA.
Редколлегия: Почему люди OpenSSH отключили ключи DSA? Я не знаю. Насколько я могу убедиться, нет ничего плохого в безопасности ключей DSA (ssh-dss). На веб-странице OpenSSH утверждается, что ssh-dss является слабым, но, насколько я знаю, 1024-битный ssh-dss не слабее 1024-битного RSA, и 1024-битные ключи RSA не отключены.
источник
Мои два цента
Как редактирование
.ssh/config
файла, чтобы разрешить это, кажется, не очень хорошая идея, я предлагаюСоздайте новый ключ, используя недавний инструмент.
Затем скопируйте новый открытый ключ (в клипборд)
Войдите в последний раз , используя старый ключ:
Затем обновить
@host
«sauthorized_keys
файл, добавив свой новый Публичный и выход из системыpasteтогда Ctrl+D
Войдите с новым ключом, используя синтаксис по умолчанию:
Затем обновить
@host
«sauthorized_keys
файл, по удалению старого Публичных (я использую ,sed -e 1d -i .ssh/authorized_keys
когда мой старый Публичных на линии1
этого файла).Я предлагаю обновить ваш SSH сервер, если вы можете.
Проверьте, не работает ли старый ключ больше.
Это должно не работать ;-)
Вы могли бы даже перепроверить, все ли в порядке:
источник
~/.ssh/config
не такая хорошая идея.~/.ssh/config
как таковой, а с идеей разрешения DSA. Спасибо за объяснение. В этом есть смысл. (Я думаю, что я уже рассмотрел в своем ответе и моих комментариях, почему я нахожу эту рекомендацию озадачивающей, но я не буду пытаться обсуждать это здесь.).config
вам выполнятьssh
в течение длительного времени и даже запотеть, что вы используете слабый алгоритм. Используя-o Pubkey...
в командной строке, вы не простите, что есть что обновить .