既存の SSH 接続を介して SSH を実行し、PHP でコマンドを実行するソリューションを探しています。簡単なコマンドでこれを機能させました。例:
$result = shell_exec("ssh user@server1 ssh user@server2 ls");
これは CLI で実行すると機能しますが、CGI では機能しません。PHPSecLib で少し作業しましたが、server1 に接続すると、2 番目の接続を開く方法がわかりません。
誰にもアドバイスはありますか?
CGIを介して実行する場合、PHPスクリプトはおそらくWebサーバーユーザーとして実行され、そのユーザーはSSHキーにアクセスできません。WebサーバーユーザーにSSHキーを与えるか、PHPスクリプトがユーザーとして実行されるように調整します(例:suPHPを使用) 。
また、キーが盗まれないように、アプリケーションを保護してください:)
$ssh->exec('ssh user@server2 ls') はどうですか?