Как заставить SSH разрешать использование только с ключом для входа?

43

Я пробовал следовать инструкциям здесь: Ссылка

, чтобы разрешить пользователям с открытым ключом на сервере проходить проверку подлинности, но я не могу заставить SSH запретить вход в систему только с именем пользователя / паролем.

Вот мой файл sshd_config - я что-то пропустил? Я уже пытался перезапустить SSH и сам компьютер.

Ссылка

    
задан user193805 18.09.2013 в 00:35
источник

5 ответов

57

По умолчанию PasswordAuthentication имеет значение yes, даже если вы его прокомментируете. Это относится к вашему /etc/ssh/sshd_config .

Вам нужно явно установить его равным no, чтобы разрешить только аутентификацию с открытым ключом.

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

И перезапустите sshd service ssh restart (pre systemd migration) или systemctl restart sshd.service .

    
ответ дан Terry Wang 18.09.2013 в 00:51
7

В соответствии с этой страницей wiki о ключах SSH и answer , вам нужно изменить эти две строки в sshd_config :

PasswordAuthentication no
ChallengeResponseAuthentication no
    
ответ дан Andy J 25.11.2014 в 10:21
4

Строка, которую вы хотите, анонимно комментирует по умолчанию в файле sshd_config.

# Change to no to disable tunnelled clear text passwords
--->#PasswordAuthentication yes

Чтобы отключить пароли, измените yes на no и удалите комментарий :

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
    
ответ дан Nolan Hergert 07.09.2015 в 21:30
4

В /etc/ssh/sshd_config , ниже настройки работали для меня:

PasswordAuthentication no
UsePAM no

Наконец, перезапустите демон sshd .

    
ответ дан BTR Naidu 09.10.2015 в 10:27
1

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

Попробуйте использовать sudo chmod go-rwx /home/username/ вместо username .     

ответ дан Diego Alonso Reyes Molina 07.11.2017 в 22:13