有没有办法完全禁用密码验证?命令行如下:
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
设置会为您处理所有这些问题,并在未来为您提供针对任何新的用户交互式身份验证方法的保护。