2

rshPHPexec()コマンドでの使用に問題があります。私が得ているエラーは次のとおり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 に答える