Ssh
為什麼基於 ssh 密碼的登錄會失敗?
我目前使用 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 root@127.0.0.1 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. root@127.0.0.1'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
添加
PermitRootLogin yes
到
Match
塊將允許root
使用密碼或公鑰身份驗證登錄。另一種選擇是使用不同的使用者。