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 SSH2身份验证_Php_Ssh_Libssh2 - Fatal编程技术网

使用公钥的PHP SSH2身份验证

使用公钥的PHP SSH2身份验证,php,ssh,libssh2,Php,Ssh,Libssh2,我们使用PHP模块SSH2在远程服务器上运行命令。我们正在使用公钥(ssh2_auth_pubkey_file())进行身份验证,但问题是我们必须将id_dsa(private)和id_dsa.pub(public)密钥复制到web服务器(lighttpd)的根目录中,并将其设置为chmod 644,否则我们将得到“在中使用公钥对根用户进行身份验证失败”。这似乎是一个重大的安全问题。是否仍要保留id_dsa chmod 600上的权限,而不让web服务器读取,即所有者和组仍然是root:root

我们使用PHP模块SSH2在远程服务器上运行命令。我们正在使用公钥(ssh2_auth_pubkey_file())进行身份验证,但问题是我们必须将id_dsa(private)和id_dsa.pub(public)密钥复制到web服务器(lighttpd)的根目录中,并将其设置为chmod 644,否则我们将得到“在中使用公钥对根用户进行身份验证失败”。这似乎是一个重大的安全问题。是否仍要保留id_dsa chmod 600上的权限,而不让web服务器读取,即所有者和组仍然是root:root而不是lighttpd:lighttpd?

如果无法读取私钥,web服务器应该如何识别自己?它必须对Web服务器的进程可读,但也应该是0400。或者使用suexec或类似的工具,让其他用户完成登录过程


也就是说,如果有任何方法可以命令Web服务器执行某些远程管理活动,那么无论如何,您都必须仔细考虑安全问题。不管你把钥匙保管得多么安全,如果你能诱使服务器执行远程操作,你仍然有麻烦。

@Kerrek:我会把它作为最终答案……哈哈,好吧,我会把它作为答案发布。