![ssh 命令 PubkeyAuthentication=false 是什么?](https://linux22.com/image/1582006/ssh%20%E5%91%BD%E4%BB%A4%20PubkeyAuthentication%3Dfalse%20%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我需要了解PubkeyAuthentication=false
以下命令实际上在做什么:
ssh -X -o PubkeyAuthentication=false notadmin@<DedicatedHost>
它会关闭 PubkeyAuthentication 吗?这是测试访问控制的测试程序,我试图了解它是如何绕过 PubkeyAuthentication 的。
答案1
您正在客户端计算机上连接到 SSH 服务器。当您指定时,-o PubkeyAuthentication=false
您正在告诉服务器您不支持 ssh-key 身份验证那会议。
SSH 服务器通常设置为ssh-key
通过password
身份验证进行访问。(其他方法也可用)
如果您想ssh -X -o PubkeyAuthentication=false notadmin@<DedicatedHost>
在客户端会话中使用,该服务器将需要支持密码身份验证。如果服务器不支持密码身份验证,并且您指定,-o PubkeyAuthentication=false
服务器将回退到任何其他可用的身份验证方法。
如果服务器禁用了密码验证并启用了 PubkeyAuth,您将无法使用 SSH 参数进行连接。
答案2
当你传递时,PubkeyAuthentication
它将启用或禁用该主机上针对该用途的通用 SSH 公钥身份验证。如上所述ssh_config
选项文档状态:
指定是否尝试公钥认证。此关键字的参数必须是是的(默认)或不。
但是在您提供的命令中,似乎false
设置了:
ssh -X -o PubkeyAuthentication=false notadmin@<DedicatedHost>
哪个可能可以,但我不确定。假设应该是no
。但在你的问题中你问:
这是测试访问控制的测试程序,我正在尝试了解通过 PubkeyAuthentication 做了什么。
最有可能的是,如果这是在测试过程中(并且有人开发了这些测试),那么他们希望强制 SSH 连接不使用 SSH 密钥进行身份验证,而是使用其他方法;最有可能的是输入一个普通的旧密码。
至于为什么会这样?谁知道呢。没有更大的测试环境,这里没人能说清楚。但我说了我想说的,根据我所知道的,那行应该不是从那时起就开始工作,false
这是一个完全错误的选择。