如何快速检查私有rsa密钥是否仍适用于bash中的一堆服务器?

时间:2014-04-29 03:16:05

标签: bash ssh openssl

我有许多服务器的列表。如果手上的私钥仍然可以用来登录SSH,则需要检查(实际上对它们做一些工作)。

如果我使用ssh -i /path/to/private_key admin@server_host。它会挂在那里要求输入密码:admin@server_host's password:

如果私钥不适用于此服务器,我该怎么做才能避免这种挂起,并收集信息?

3 个答案:

答案 0 :(得分:2)

您可以使用以下命令告诉ssh不允许密码验证:

ssh -i /path/to/private_key -oPasswordAuthentication=no admin@server_host

如果私钥不起作用,这将导致ssh立即退出。

如果您希望它只是在成功时退出,只需将该命令添加到结尾:

ssh -i /path/to/private_key -oPasswordAuthentication=no admin@server_host exit

答案 1 :(得分:1)

我无法使用PasswordAuthentication=no选项来使用Mac OS / X 10.9.2。

但是,我能够使用NumberOfPasswordPrompts=0获得所需的行为。

答案 2 :(得分:1)

实际上我在ssh中找到了另一个更准确的选项,可用于解决我的问题。

-oPreferredAuthentications="publickey"

添加此选项后,ssh连接将仅使用我提供的私钥进行身份验证,而不是首先尝试其他方法(并排除密码,如我接受的答案)。这甚至加快了整个过程。