Php 防止已知主机的真实性检查
我正在使用phpseclib连接到刚刚创建的服务器。它将永远不会连接到。它不会出现在Php 防止已知主机的真实性检查,php,ssh,phpseclib,Php,Ssh,Phpseclib,我正在使用phpseclib连接到刚刚创建的服务器。它将永远不会连接到。它不会出现在~/.ssh/known\u hosts中。为了防止脚本超时,我想绕过警告: 无法确定主机“xxx.xxx.xxx.xxx”的真实性。 RSA密钥指纹是xxx。 是否确实要继续连接(是/否)? 我知道可以向OpenSSH传递一个标志来禁用此真实性检查: ssh-o UserKnownHostsFile=/dev/null-o StrictHostKeyChecking=nouser@xxx.xxx.xxx.xx
~/.ssh/known\u hosts
中。为了防止脚本超时,我想绕过警告:
无法确定主机“xxx.xxx.xxx.xxx”的真实性。
RSA密钥指纹是xxx。
是否确实要继续连接(是/否)?
我知道可以向OpenSSH传递一个标志来禁用此真实性检查:
ssh-o UserKnownHostsFile=/dev/null-o StrictHostKeyChecking=nouser@xxx.xxx.xxx.xxx
这是phpseclib中的一项功能吗?phpseclib既不能也不能验证主机的真实性 phpseclib的作用是允许您通过
$ssh->getServerPublicHostKey()
检索服务器公共主机密钥。您可以在登录服务器之前执行此操作,并且可以将密钥保存在某个位置,无论是在数据库中还是在文件系统中,并在将来的连接中对照保存的密钥进行检查
我的意思是,phpseclib在哪里保存服务器公钥?它不知道你是否有数据库访问权限。它不知道是否有任何文件系统是可写的。我想它可以使用tempnam(),但正如您所说,它在初始连接上做什么?假设您正在通过web浏览器(而不是CLI)运行它,并显示js弹出窗口?而且tempnam()也不是永久性的。它是否应该在每次/tmp被文件系统删除时重新提示您?我知道它不会尝试验证主机的真实性,但为什么我的CLI脚本会显示“验证真实性”警告?请注意,还有其他东西在调用检查!这一定已经改变了,因为我当前的问题是phpseclib中的Net_SSH2()不会连接到新设备,除非我首先手动连接,并在它要求我验证新指纹的有效性时说“是”。@dustinsodak-phpseclib无法知道OpenSSH是否通过CLI成功连接。因此,您甚至不需要在系统上安装OpenSSH,phpseclib就可以工作。。。