SSH:完全禁用密码验证


13

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

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

它仍然要求输入密码。当然,如果可能的话,我想在不触及服务器的情况下这样做。

Answers:


19

好的,我找到了!它的

ssh -o BatchMode=yes host

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


4

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

Host host
BatchMode yes

应该做的工作。


3

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

http://www.gossamer-threads.com/lists/openssh/dev/47179

基本上,openssh使用键盘交互来实现挑战 - repsonse。因此,如果将这些选项中的任何一个设置为“是”,则在代码中将键盘交互设置为“是”。您必须将两者都设置为“no”才能获得所需的行为。

我必须做:

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

当然, BatchMode=yes 设置将为您处理所有这些,并将来证明您将来可以使用任何新的用户交互式身份验证方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.