Подключение от одного экземпляра EC2 к другому экземпляру EC2 с использованием phpseclib

Привет! Я использую HANA на одном EC2 и использую PHP, который уже есть в SUSE Linux, для извлечения данных из другого экземпляра. Тот же код работает нормально, когда я пытаюсь получить данные из моей локальной системы. Но он там не работает и не показывает никаких ошибок. Пожалуйста помоги. Вот мой код:

error_reporting(1);
set_time_limit(0);
$date = date("d/m/Y-h:i:s") . "\n"; //to get today's date and time                  
$logfile = "file-transfer";
$fpath ="log/";
$filepath = $fpath .$logfile . '-log-' . date('Y-m-d') . '.csv';  //path of error log file
$fh1 = fopen($filepath, 'a'); //opening the error log file 
fwrite($fh1, "Process Started@" .$date. "\n");

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

$key = new Crypt_RSA();

$key->loadKey(file_get_contents('key/private.ppk'));

$local_directory = 'sap/';

$remote_directory = '/var/www/';
$file = 'index.html';

$sftp = new Net_SFTP('ec2-XX-XXX-CCC-XX.ap-southeast-1.compute.amazonaws.com');
if (!$sftp->login('ubuntu', $key)) {    
    fwrite($fh1, "Login Failed" .$date. "\n");
}
else{

    fwrite($fh1, "Login Successful@" .$date. "\n");
}


 //$success = $sftp->put($remote_directory . $file,$local_directory . $file,NET_SFTP_LOCAL_FILE);
 $success = $sftp->get($remote_directory . $file,$local_directory . $file);
if($success){
     fwrite($fh1, "File Transferred Successfully@" .$date. "\n");
}
else{
    fwrite($fh1, "Error:" .$date.error_get_last(). "\n");

}

Ошибочно, когда я ввел неправильное имя хоста, он выдает сообщение "Ошибка входа в систему". Но когда я поставил правильное имя хоста, он не работает.

1 ответ

Если вы используете VPC для своих сетей внутри AWS, вам нужно открыть порты в группе безопасности, чтобы экземпляры EC2 в той же группе безопасности могли видеть и иметь доступ друг к другу.

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html

Другие вопросы по тегам