Я последовал за этот руководство по настройке SSH. Теперь он запрашивает парольную фразу, но когда я ничего не набираю и нажимаю return, он запрашивает пароль, и я могу использовать его для входа в систему. Как я могу это предотвратить?
Мой sshd_config
как следует:
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel VERBOSE
LoginGraceTime 20
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication yes
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
Вы выключили PasswordAuthentication
(т.е. sshd
встроенная аутентификация по паролю), но была включена ChallengeResponseAuthentication
(т.е. аутентификация через PAM, что по умолчанию означает аутентификацию по паролю). Если вам нужна только аутентификация на основе ключей, отключите ChallengeResponseAuthentication
.
Вы перезапустили демон ssh?
Вы проверяли владельца и разрешение каталога .ssh?
Его каталог и файлы внутри должны принадлежать идентификатору входа. Каталог должен иметь разрешение 700 (доступ разрешен только зарегистрированному пользователю), а файлов должно быть 600.
Похоже, вы назначили парольную фразу своему закрытому ключу. Это то, что вам будет предложено при попытке подключения. Вам нужно будет удалить это, чтобы закрытый ключ больше не был зашифрован. Вы можете воссоздать ключ, установив пустой пароль (а также введя его в файл allowed_hosts). Либо установите пустую парольную фразу из текущего ключа, используя ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
- Кристофер Карел