0

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

4

1 回答 1

1

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

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

于 2011-07-12T23:28:36.123 回答