Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 防止已知主机的真实性检查_Php_Ssh_Phpseclib - Fatal编程技术网

Php 防止已知主机的真实性检查

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

我正在使用phpseclib连接到刚刚创建的服务器。它将永远不会连接到。它不会出现在
~/.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就可以工作。。。