Соединение Amazon RDS через туннель SSH (файл ключа PEM отсутствует из-за инициализации с помощью Laravel Forge) - PullRequest
0 голосов
/ 15 июня 2019

Я подготовил экземпляр EC2 через forge. При этом вы не получите возможность скачать ключ PEM. Вместо этого я добавил свой локальный ключ в конфигурацию SSH forge.

Теперь я могу использовать SSH в экземпляре EC2 с помощью ssh forge@IPADDRESS - все хорошо.

У меня есть настройка экземпляра RDS в том же VPC. Я проверил это из экземпляра EC2 и могу:

  • Подключение к MySQL через мой экземпляр EC2 в терминале. Использование:
mysql -h RDSINSTANCE.ENDPOINT.eu-west-2.rds.amazonaws.com -u USERNAME -p
  • Проверено, что порт 3306 открыт через telnet.
telnet RDSINSTANCE.ENDPOINT.eu-west-2.rds.amazonaws.com 3306

Все вышесказанное предполагает, что экземпляр RDS связан с экземпляром EC2.

Теперь мне нужно открыть туннель SSL с моего ноутбука, чтобы подключить sequelpro. Из-за отсутствия файла PEM я открыл туннель SSH с помощью команды:

ssh -L 3307:FORGE-PRIVATE-IP:3306 forge@FORGE-PUBLIC-IP

Кажется, это работает нормально. Однако при попытке подключения к SQL через sequel pro с настройками:

ВЕДУЩИЙ: 127.0.0.1 PORT: 3307 ПОЛЬЗОВАТЕЛЬ: ИМЯ ПОЛЬЗОВАТЕЛЯ ПАРОЛЬ: ПАРОЛЬ

Я получаю следующую ошибку от seqelpro:

Lost connection to MySQL server at 'reading initial communication packet', system error: 0

и в подробном режиме в терминале:

debug1: Connection to port 3307 forwarding to 172.30.0.110 port 3306 requested.
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug1: channel 2: free: direct-tcpip: listening port 3307 for 172.30.0.110 port 3306, connect from 127.0.0.1 port 56172 to 127.0.0.1 port 3307, nchannels 3

Поддержка AWS, кажется, думает, что это потому, что туннель не настроен правильно, но я не уверен ни в каких других способах.

1 Ответ

0 голосов
/ 15 июня 2019

Я нашел проблему. Туннель ssh должен быть настроен с использованием конечной точки RDS, а не IP-адреса:

ssh -L 3307: RDSINSTANCE.ENDPOINT.eu-west-2.rds.amazonaws.com:3306 forge@FORGE-PUBLIC-IP

Правила безопасности в VCS между экземпляром EC2 и экземпляром RDS должны использовать частный IP. то есть входящая группа безопасности RDS разрешает MySQL / Aurora с частного IP EC2.

...