2

Linux-SA サーバー自動化ツール環境は初めてです。次のように認証しようとしてsshpassいます。

Linux 環境では、ターミナルで次のコードを使用し、ファイルのリストを適切に取得します。

sshpass -p Password ssh -o StrictHostKeyChecking=no root@localhost "ls /root" 

しかし、次のように PHP から結果を取得しようとすると、空の文字列が返されます。

shell_exec('sshpass -p Password ssh -o StrictHostKeyChecking=no root@localhost "ls /root"');
4

5 に答える 5

2

初めて ssh 経由でこのサーバーに接続する場合は、この 1 回限りの手動を実行する必要があります。そのため、既知のホストに RSA キーが追加されました。同じ問題が発生しました。そして、これは役立ちます。

于 2015-12-01T17:44:55.673 に答える
0

上記のコマンドの出力をいくつかの変数で取得し、その変数を表示してください。例えば:

$output = shell_exec('sshpass -p Password ssh -o StrictHostKeyChecking=no root@localhost "ls /root"');

エコー $出力

これは間違いなく結果を示します。

于 2013-11-08T10:28:03.133 に答える
0

ウェブページで PHP を呼び出していますか?

パスにsshpassはありますか?フルパスを使用するのはどうですか?

例えば

shell_exec('/usr/local/bin/sshpass -p Password ssh -o StrictHostKeyChecking=no root@localhost "ls /root"');

*sshpass がどこにあるかを調べる必要があります

また、このようなパスワードをコードに入れる代わりに、ssh キーを調査することをお勧めします。これはセキュリティ上の問題になる可能性があります.. (実際には、あなたが何をしているのかわかりません。テストしてるだけ?)

于 2013-09-17T07:58:51.967 に答える