如何强制 ssh 客户端仅使用密码身份验证?

如何强制 ssh 客户端仅使用密码身份验证?

如果我使用 Ubuntu 11.04 中的 pubkey auth,如何将 ssh 客户端设置为仅对服务器使用密码身份验证? (只是因为在服务器上测试密码而需要,我默认使用密钥登录)

我找到了一个方法:

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup

现在系统提示我输入密码,但是有什么官方方法吗?

答案1

禁用公钥认证并且还设置了首选身份验证以便password不使用 gssapi-with-mic 等替代方法:

ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password  example.com

您需要确保客户端未配置为禁止密码身份验证。

答案2

我发现了实现此目的的捷径:

ssh user:@example.com

请注意冒号 ( :) 及其后面的空密码。

答案3

除了 scoopr 发布的方法之外,您还可以在 ssh 客户端配置文件中设置每个主机选项。

在您的.ssh目录中,创建一个名为config(如果尚不存在)的文件并将权限设置为600,然后您可以创建以

host <some hostname or pattern>

然后设置每个主机选项,例如,

host bob.specific.foo
user fred

host *.home.example
user billy
port 9191

所以你可以有

host server.to.test
PubkeyAuthentication no

在该文件中,然后简单地

ssh server.to.test

并且该选项将被选中。

答案4

我尝试了其中一些答案,但ssh -v不断显示我的公钥被从我的主目录中拉出。然而,指定虚假身份文件为我做了这个伎俩:

ssh -i /dev/null host

我必须永久执行此操作(以解决 APC 机架式 PDU 中损坏的 SSH 服务器 — 留下来远的如果您关心安全性,请远离这些事情),所以我最终将该选项放入我的配置文件中:

Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null

相关内容