如何强制 SSH 使用密码而不是密钥?

如何强制 SSH 使用密码而不是密钥?

因此我需要使用密码而不是密钥登录机器,而我几乎从来不这样做。这似乎很容易,但事实并非如此,ssh 拒绝使用密钥以外的任何东西。

ssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no root@ip-address
root@ip-address: Permission denied (publickey).

答案1

root@ip-address: Permission denied (publickey)

此消息意味着您的服务器仅允许公钥,因此请使用以下命令启用密码验证/etc/ssh/sshd_config

Password Authentication yes

您的系统可能允许密码但不允许键盘交互,例如

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)

在这种情况下,您需要使用以下命令:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]

答案2

您尝试使用正确的参数来禁用密钥身份验证。也许服务器拒绝密码身份验证?检查服务器 ssh 配置。

答案3

事实证明,解决方案是PasswordAuthentication yes建立/etc/ssh/sshd_config

感谢几位为我指明正确方向的人。

答案4

Permission denied (publickey)

该错误消息中的“(publickey)”字符串是远程服务器接受的身份验证方法列表。在这种情况下,远程服务器仅接受公钥身份验证。您可以随意更改客户端参数,但这不会改变服务器仅接受公钥身份验证的事实。

要使用密码登录,您必须首先重新配置远程服务器以接受密码验证。

相关内容