Answers:
我最近也需要这个,并想出了这个:
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com
您需要确保未将客户端配置为禁止密码身份验证。
-o PubkeyAuthentication=no
就我而言,仅此而已。
-o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no
相反
PasswordAuthentication
。实际上,我在这里是因为我想测试禁用密码身份验证在主机上是否正常工作。
我发现了用于此目的的快捷方式:
ssh user:@example.com
注意冒号(:
)及其后的空密码。
mysql -u user -p
ssh
客户端盲目地尝试不相关的私钥以对新安装的服务器进行身份验证,并且由于尝试次数最多而无需询问密码,因此被拒绝了。为了对此第一个连接强制密码验证,我必须使用-o PreferredAuthentications=password
语法,冒号技巧没有明显的作用。因此,尽管可以尝试这种技巧,但不应将其作为一致的行为。
与scoopr发布的方法一样,您可以在ssh客户端配置文件中设置每个主机选项。
在.ssh
目录中,创建一个名为的文件config
(如果尚不存在),并将权限设置为600
,则可以创建以以下内容开头的部分
host <some hostname or pattern>
然后设置每个主机的选项,例如,
host bob.specific.foo
user fred
host *.home.example
user billy
port 9191
这样你就可以
host server.to.test
PubkeyAuthentication=no
在那个文件中,然后简单地
ssh server.to.test
然后该选件将被拿起。
~/.ssh/config
,并添加PubkeyAuthentication no
我最近需要这个,但是上面的选项都不起作用,这ssh -v
表明通过-o
开关传递的命令行选项被~/.ssh/config
文件中指定的值所覆盖。
起作用的是:
ssh -F /dev/null <username>@<host>
从ssh
手册页:
-F configfile
Specifies an alternative per-user configuration file. If a
configuration file is given on the command line, the system-wide
configuration file (/etc/ssh/ssh_config) will be ignored. The default
for the per-user configuration file is ~/.ssh/config.
感谢此答案:如何使ssh忽略.ssh / config?
~/.ssh/config
,但如果指定,密钥也不会被使用-F /dev/null
。ssh -v
输出在这种情况下会有所帮助,它清楚地表明,因为我在ssh config中有一个包罗万象的条目*
,所以它选择使用公钥,而不是-o
像以前的答案那样使用通过开关传递的选项。
~/.ssh/id_rsa
如手册页所述。这些路径在客户端中进行了硬编码。只需确保在测试时提供正确的用户即可。
@scoopr和@HalilÖzgür的答案对我不起作用。
这为我工作:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@example.com
来源:http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html
ssh -o GSSAPIAuthentication=no example.com