我目前使用 ssh 密钥连接到我的服务器(Ubuntu 18.04)。我想允许(在特定的、有限的范围内)使用密码登录的能力。
每当我尝试时,我的密码都会失败。下面是我设置密码的会话,然后尝试使用它:
~ # id
uid=0(root) gid=0(root) groups=0(root)
~ # passwd
Enter new UNIX password: <helloworld>
Retype new UNIX password: <helloworld>
passwd: password updated successfully
~ # ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:AlFtwpK4EhhaMXP5aT6fuQM9u9RYPq/o/sLJXfz++jM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password: <helloworld>
Permission denied, please try again.
如果这很明显,我很抱歉,我不知道为什么服务器接受新密码,然后接受基于密码的登录以最终拒绝凭据。
编辑:sshd_config
我未能添加的文件
~ # cat /etc/ssh/sshd_config | grep -v ^# | grep -v ^$ root@srv
Port 22
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication no
UsePAM yes
PrintMotd no
UseDNS no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
Match Address 192.168.10.0/24,192.168.20.0/24,127.0.0.0/8
PasswordAuthentication yes
登录失败,因为没有设置默认为
PermitRootLogin
,这意味着密码登录被禁用。/etc/ssh/sshd_config
prohibit-password
root
添加
到
Match
块将允许root
使用密码或公钥身份验证登录。另一种选择是使用不同的用户。