2011-12-28 2 views
0

От локальной ubuntu linux машины, соединяющей машину ec2 по ssh-доступу.ssh доступ к ec2 от php

Когда я запускаю этот php-скрипт из терминала, он выполняет штраф и записывает хвостовые записи в файл. когда я бегу из браузера получил эту ошибку в апача журнал ошибок

SSH: Не удалось разрешить имя хоста Proxy2: Имя или служба не известны

Найдено его из-за апача проблемы разрешения пользователя. я думаю, правильно или неправильно, я не уверен. Любой помогает мне решить эту проблему.

код PHP: -

<?php 

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

ли апач пользователь имеет разрешение на запись в файл proxy2temp1? Также вы уверены, что сообщение об ошибке верно? Я не вижу ни одного имени хоста proxy23, только «прокси2». –

+0

Если вы введете эту команду ssh в свою командную строку, можете ли вы успешно подключиться? Кажется, что ваша машина не там, где прокси2 или какой ее IP-адрес? –

+0

sam am напечатано неправильно как proxy23 –

ответ

1

** Наконец нашел решение, используя phpseclib и решить мою проблему. Я рекомендую phpseclib подключать машины amazon ec2 от php uing .pem-файла, чтобы помочь другим поделиться моим примером кода.

убедитесь, что файл .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-запрос? –