2011-12-28 15 views
0

ローカルubuntu linuxマシンからec2マシンをsshアクセスで接続しています。sshからec2へのアクセス

私は端末からこのPHPスクリプトを実行すると、細かく実行され、tailedエントリがファイルに書き込まれます。私は、ブラウザから実行するとApacheのエラーログにこのエラーを得た

のssh:ホスト名のPROXY2を解決できませんでした:名前またはサービスが

を知られていないapacheのユーザ権限の問題にその原因を発見しました。私の推測が正しいか間違っているかはわかりません。いずれにせよ、この問題を解決するのに役立ちます。

PHPコード: -

<?php 

$ss = 'ssh proxy2 '.'tail -n 3 /out/speed_log.txt.1'.' > proxy2temp1'; 
system($ss); 
?> 
+1

は、Apacheユーザーをproxy2temp1ファイルを書き込むための権限を持っていますか?また、エラーメッセージが正しいことを確認してください。私はどこにも 'proxy23'というホスト名は見当たりません。ただ、 'proxy2'だけです。 –

+0

コマンドラインにsshコマンドを入力すると、正常に接続できますか?あなたのマシンはproxy2がどこにあるのか、あるいはIPアドレスが何であるのでしょうか? –

+0

samがプロキシとして間違って入力されました23 –

答えて

1

**は、最後にphpseclibを使用して解決策を見つけたし、私の問題を解決しました。 phpseclibを使用してphp uing .pemファイルからamazon ec2マシンを接続し、他の人が私のサンプルコードを共有できるようにすることをお勧めします。

の.pemファイルを読み込むための許可を必要とすることを確認してください**

サンプルコード:

include('Net/SSH2.php'); 
include('Crypt/RSA.php'); 

$key = new Crypt_RSA(); 

$key->loadKey(file_get_contents('/pathtokey.pem')); 


$ssh = new Net_SSH2('ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com'); 
if (!$ssh->login('user', $key)) { 
exit('Login Failed'); 
} 

echo $ssh->exec('tail -n 3 /out/_log.txt.1'); 
+0

インスタンスにSSHした後、どのようにhttpリクエストを作成できますか? –

関連する問題