Итак, я относительно новичок в сетевых аспектах AWS, и у меня возникла проблема. Вот краткое описание того, что у меня есть.
У меня есть служба RDS, которая не является общедоступной. Конечная точка преобразуется в частный IP-адрес 10.X.X.X. У меня есть экземпляр EC2, который находится в том же VPC / подсети и общедоступен. Я могу без проблем подключиться к этому экземпляру EC2 по SSH. Как ни странно, у меня есть процесс, работающий на этом экземпляре EC2, который может успешно подключаться к RDS через JDBC.
Однако, поскольку экземпляр RDS не является общедоступным, я хочу использовать экземпляр EC2 для доступа к экземпляру RDS с моего компьютера разработчика. Каждый раз, когда я это делаю, на моем компьютере появляется сообщение «канал 2: ошибка открытия: административно запрещена: ошибка открытия».
Вот моя команда
ssh -i ~/key.pem -N -L 3307:rds-name-here.abcdefghi123.us-east-1.rds.amazonaws.com:3306 ec2-user@1.1.1.1
Очевидно, я изменил детали, но это суть команды. Это единственная ошибка, которую я получаю и действительно не знаю, где еще искать.
Любые указатели в правильном направлении были бы ему полезны. Я сейчас в растерянности. Я действительно подтвердил, что группы безопасности разрешают весь трафик друг к другу. Я вообще не менял сетевые ACL.
РЕДАКТИРОВАТЬ: Я включил некоторые флаги отладки (-vvv), и он отвечает типом пакета 92?
debug2: fd 6 setting TCP_NODELAY
debug2: fd 6 setting O_NONBLOCK
debug3: fd 6 is O_NONBLOCK
debug1: channel 2: new [direct-tcpip]
debug3: send packet: type 90
debug3: receive packet: type 92
channel 2: open failed: administratively prohibited: open failed
debug2: channel 2: zombie
debug2: channel 2: garbage collecting
Итак, я нашел ответ ... видимо, это была опечатка. Я нашел другое сообщение, в котором мне предлагалось посмотреть / var / log / secure, и там были ошибки о невозможности найти конечную точку. Моя проблема в том, что я использовал конечную точку старого узла чтения реплик, который я использовал изначально для просмотра данных в моем главном устройстве, которое с тех пор было удалено. Я не осознавал этого, потому что полное имя хоста почти идентично, и думал, что скопировал / вставил его.
Так что для других людей, которые ищут потенциальные проблемы, проверьте / var / log / secure, выполните поиск sshd и найдите ошибки «Имя или служба неизвестны». Вот что со мной происходило.
Теперь это работает.
проверьте / etc / ssh / sshd_config
Вероятно, у вас отключено туннелирование:
AllowTcpForwarding нет
должно быть
AllowTcpForwarding да