我跟着这设置 SSH 的教程。现在它会提示输入密码,但是当我什么都不输入并按回车键时,它会要求输入密码,然后我就可以使用它登录。我该如何避免这种情况?
我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
答案1
您已关闭PasswordAuthentication
(即sshd
的内置密码验证),但已打开ChallengeResponseAuthentication
(即通过 PAM 进行验证,默认情况下即密码验证)。如果您只想要基于密钥的验证,请关闭ChallengeResponseAuthentication
。
答案2
您重新启动了 ssh 守护进程吗?
答案3
您是否检查过.ssh 目录的所有者和权限?
其目录和其中的文件应由登录 id 拥有。目录的权限应为 700(仅允许登录用户访问),文件权限应为 600。
答案4
听起来你为私钥分配了一个密码。这是你在尝试连接时提示的内容。你需要删除它,这样私钥就不再加密了。你可以在设置空白密码的同时重新创建密钥(并将其输入到 allowed_hosts 文件中)。或者,使用ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
--Christopher Karel从当前密钥设置一个空白密码