веб-сервисы Amazon — подключайтесь к AWS с помощью PHP-клиента, используя SSH2

Я пытаюсь подключиться к MySQL DB на AWS с клиентом PHP.
Соединение имеет 2 фазы:
1 — подключиться к SSH-порту 22, используя аутентификацию с открытым / закрытым ключом
2 — подключиться к серверу mysql через порт 3306

У меня проблемы с первым этапом. У меня есть файл pem, и у меня есть следующий код:

<?php
include('SSH2.php');
include('RSA.php');

$key = new Crypt_RSA();
$key->loadKey(file_get_contents('path to pem file'));

$ssh = new Net_SSH2('server IP');
if (!$ssh->login('root', $key)) {
exit('Login Failed');
}

echo $ssh->exec('ls -la');
?>

Что я делаю неправильно?

У кого-нибудь есть пример для подключения end2end ??

2

Решение

Я проверил ваш сценарий, и он, кажется, работает правильно для меня.

Пожалуйста, проверьте несколько вещей, чтобы увидеть, почему не работает соединение SSH,

  1. Убедитесь, что вы используете правильный закрытый ключ ssh [файл pem] и что разрешение для этого файла доступно только для чтения [chown 0400 pemfile]
  2. Убедитесь, что группа безопасности для сервера ec2 разрешает порт 22 для IP-адреса, на котором работает PHP.
  3. Убедитесь, что вы используете правильный IP-адрес сервера, имя пользователя. Вообще говоря, большинство AMI сервера EC2 построены с отключенным удаленным входом в систему, вам нужно будет использовать правильное имя пользователя, как в Amazon AMI, вам нужно использовать ec2-user, а в Ubuntu amiit — это Ubuntu.

Также, пожалуйста, проверьте https://blog.rjmetrics.com/2009/01/06/php-mysql-and-ssh-tunneling-port-forwarding/ который дает глубокое понимание того, что вы достигаете

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]