2

sshとキーを使用して別のマシンに接続するシェルスクリプトがあるため、ユーザー名とパスワードは必要ありません。

コマンドラインからこのスクリプトを実行すると正常に動作します..しかし、php shell_exec からこのスクリプトを実行すると動作しません。

PHP で ssh 接続を確立し、自分のユーザーとしてスクリプトを実行すると、機能します。

私の質問のために:Dshell_exec別のユーザーとしてssh経由で接続せずに、phpからスクリプトを実行する方法はありますか?

4

3 に答える 3

1

秘密鍵ファイルを正しく指定しましたか?

于 2010-11-08T16:13:28.147 に答える
0

Ubuntu または Debian を使用している場合、Web サーバーはユーザー名www-dataで実行されています。他のシステムについては、ユーザー名の Web サーバー構成を確認してください。このユーザー (および PHP Web アプリケーション) が SSH 接続を実行できるかどうかを簡単にテストできます。

1) Web サーバーのユーザーになる

sudo su www-data

2) リモートホストに接続してみる

ssh remoteUser@remoteHost

パスワードを入力せずに接続できる場合は、別の問題があるはずです。パスワードを入力する必要がある場合、キー ファイルはwww-dataではなく別のユーザー用に保存されています。キーを使用するように SSH を構成済みです。ローカル ユーザーのwww-dataに対して同じことを行うと、機能します。

于 2010-11-08T11:10:56.450 に答える
0

でssh接続がうまくいかないようshell_execです。shellscript下で実行すると、ssh2_execうまくいくようです。

ssh接続はスクリプトファイルで公開鍵と秘密鍵を使用して行われるため、これは少し奇妙です..これは単に実行されると思います:s

そこには期待どおりに機能する他のコマンドがあるため、Webサーバーはファイルを実行できます。

于 2010-11-08T16:10:58.157 に答える