2

rsh在 PHPexec()命令中使用时遇到问题。我得到的错误是:Could not create directory '/nonexistent/.ssh'

这似乎是因为 Apache 以nobody没有主目录的用户身份运行,因此它无法找到/创建 .ssh 目录。我会从终端做的是类似于:

sudo su - user_with_home_directory
/usr/bin/rsh -n -l username myserver.com /path/to/my/script.sh

但我不知道如何使用 PHP 的exec()命令来做到这一点。我不想(也不能)给nobody用户一个主目录只是为了让问题消失。

非常感谢任何帮助帮助我弄清楚如何让它工作。

4

1 回答 1

1

因此,似乎rsh我正在使用的服务器上启用了 Kerberos,而后者又使用 SSH 进行身份验证。这就是导致搜索.ssh目录的原因。

为了解决这个问题,我创建了一个 SSH 密钥并将其存储在文件系统中的目录以外的不同位置.ssh,再次防止为nobody用户创建主目录。然后使用 SSH,我指定了-i指向我生成的 SSH 密钥的选项,允许我远程执行脚本而无需使用密码登录。

于 2011-08-04T18:48:18.497 回答