sshとキーを使用して別のマシンに接続するシェルスクリプトがあるため、ユーザー名とパスワードは必要ありません。
コマンドラインからこのスクリプトを実行すると正常に動作します..しかし、php shell_exec からこのスクリプトを実行すると動作しません。
PHP で ssh 接続を確立し、自分のユーザーとしてスクリプトを実行すると、機能します。
私の質問のために:Dshell_exec
別のユーザーとしてssh経由で接続せずに、phpからスクリプトを実行する方法はありますか?
sshとキーを使用して別のマシンに接続するシェルスクリプトがあるため、ユーザー名とパスワードは必要ありません。
コマンドラインからこのスクリプトを実行すると正常に動作します..しかし、php shell_exec からこのスクリプトを実行すると動作しません。
PHP で ssh 接続を確立し、自分のユーザーとしてスクリプトを実行すると、機能します。
私の質問のために:Dshell_exec
別のユーザーとしてssh経由で接続せずに、phpからスクリプトを実行する方法はありますか?
秘密鍵ファイルを正しく指定しましたか?
Ubuntu または Debian を使用している場合、Web サーバーはユーザー名www-dataで実行されています。他のシステムについては、ユーザー名の Web サーバー構成を確認してください。このユーザー (および PHP Web アプリケーション) が SSH 接続を実行できるかどうかを簡単にテストできます。
1) Web サーバーのユーザーになる
sudo su www-data
2) リモートホストに接続してみる
ssh remoteUser@remoteHost
パスワードを入力せずに接続できる場合は、別の問題があるはずです。パスワードを入力する必要がある場合、キー ファイルはwww-dataではなく別のユーザー用に保存されています。キーを使用するように SSH を構成済みです。ローカル ユーザーのwww-dataに対して同じことを行うと、機能します。
でssh接続がうまくいかないようshell_exec
です。shellscript
下で実行すると、ssh2_exec
うまくいくようです。
ssh接続はスクリプトファイルで公開鍵と秘密鍵を使用して行われるため、これは少し奇妙です..これは単に実行されると思います:s
そこには期待どおりに機能する他のコマンドがあるため、Webサーバーはファイルを実行できます。