0

自分のマシンからリモート マシン ブラウザを開こうとしています。パスワードなしの接続をセットアップしました(両方のシステムが同じネットワークにあり、信頼されているという事実を考慮して)。

以下のスクリプトを実行してブラウザを起動できます。これには 3 つの引数が必要です

a)。ユーザー名
b)。リモート マシンの IP アドレス
c)。Firefoxで開くURL

このスクリプトを bash シェルで実行すると、ブラウザを問題なく開くことができます。しかし、これを PHP 内で呼び出すと、リモート マシンでブラウザを起動できません。すべてのデバッグ プリントが表示されますが、ブラウザを開くことができません。ポインタは非常に役に立ちます。

以下は、リモート マシンでブラウザを開くシェル スクリプトです。

#!/bin/bash
if test $# != 3;
then
     echo "
         $0
         This command line script is used to launch, browser remotely. You need to pass 3 arguments to this script.
         YOU NEED TO PASS 3 ARGUMEMTS TO THIS SCRIPT,
         For example , \$> sh $0 \"<userNameofRemoteSystem>\"  \"<remoteSystemIP>\"  \"<webPageAddress>\"

         \$> sh $0 \"Uname\" \"172.17.64.94\"  \"mail.google.com\" \n";
         exit 1
fi

echo "<br><br>\nRECEIVED PARAMETERS,\n\tuserName\t-> |$1|\n\tipAddress\t-> |$2|\n\twebURL\t\t-> |$3|\n\n<br>";
echo "<br>Checking if Connection to |$2| WITH USERNAME |$1| is password less???<br><br>";
sleep 2

echo "<br>grep -wc $1 /home/user/.ssh/authorized_keys<br>";
count=`grep -wc $1 /home/user/.ssh/authorized_keys`;
echo "<br>got process count=|$count|<br>"

sleep 2

if [ "$count" != 1 ];
then
    echo "
       Looks like password less connection to |$2| is not configured with this server for username |$1|..
       Please congfigure the same and run this script again...\n";
fi

echo "SUCCESSFULLY CONNECTED, LAUNCHING BROWSER ON |$2| WITH |$3|\n";
ssh $1@$2 "nohup sh openBrowser.sh $3" &
PID=$$;
echo "PID IS |$PID|\n";
sleep 2;
echo "<br>PROCESS OUTPUT LOOKS LIKE THIS";
ps aux | grep $PID | grep -v grep
echo "<br>";
echo "after sleep";
kill -9 $PID && echo "after kill pid=$PID, passed ssh $1@$2 \"nohup sh openBrowser.sh $3\" &";

以下は、シェルスクリプトを呼び出すために使用しているphpスクリプトです。

<?php
    $c_url=$_POST['url'];
    $c_name=$_POST['uname'];
    $c_ip=$_POST['ipaddress'];

    $output = system("/bin/sh /home/user/launchBrowser_remote.sh $uName $ipADDR $c_url");
    echo "$output";
?>

シェルスクリプト内で間違ったPIDを取得しているように見え、sshをリモートに起動するのではなく、呼び出し元スクリプトを強制終了します.....ところで、両方execを試しshell_execましたが、運がありませんでした。

任意のポインタは非常に役に立ちます

ありがとう

4

1 に答える 1

0

php ファイルを実行しているユーザー (そのコンテキストで呼び出された場合は Web サーバー ユーザー) も、パスワードなしの認証用に設定されていることを確認してください。

于 2013-05-09T14:30:44.660 に答える