SSH:完全禁用密码验证

SSH:完全禁用密码验证

有没有办法完全禁用密码验证?命令行如下:

ssh -o KbdInteractiveAuthentication=no -o PasswordAuthentication=no machine" 

它仍然要求输入密码。当然,如果可能的话,我希望在不接触服务器的情况下完成此操作。

答案1

好的,我找到了!

ssh -o BatchMode=yes host

不是很直观,尤其是我之前尝试过的选项不起作用。

答案2

您可以将这些选项添加到 .ssh/config 并节省一些输入:

Host host
BatchMode yes

应该可以完成这个工作。

答案3

我刚刚遇到了这个问题并在这里找到了答案:

https://web.archive.org/web/20160403020906/http://www.gossamer-threads.com/lists/openssh/dev/47179

基本上,openssh 使用 keyboard-interactive 来实现 challenge-repsonse。因此,如果这两个选项中的任何一个设置为“yes”,那么 keyboard-interactive 在代码中也会设置为“yes”。您必须将这两个选项都设置为“no”才能获得所需的行为。

我必须做:

ssh -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no -o ChallengeResponseAuthentication=no

当然,该BatchMode=yes设置会为您处理所有这些问题,并在未来为您提供针对任何新的用户交互式身份验证方法的保护。

相关内容