我有许多服务器的列表。如果手上的私钥仍然可以用来登录SSH,则需要检查(实际上对它们做一些工作)。
如果我使用ssh -i /path/to/private_key admin@server_host
。它会挂在那里要求输入密码:admin@server_host's password:
如果私钥不适用于此服务器,我该怎么做才能避免这种挂起,并收集信息?
答案 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连接将仅使用我提供的私钥进行身份验证,而不是首先尝试其他方法(并排除密码,如我接受的答案)。这甚至加快了整个过程。