使用公钥进行PHP SSH2身份验证

时间:2011-07-12 23:17:27

标签: php ssh libssh2

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

1 个答案:

答案 0 :(得分:1)

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

也就是说,如果有任何方式可以命令网络服务器执行某些远程管理活动,那么无论如何你都必须仔细考虑安全隐患。无论你保持密钥的安全性如何,如果无论如何都可以诱使服务器执行远程操作,你仍然会遇到麻烦。