我已经通过伪造配置了EC2实例。这样做时,您没有机会下载PEM密钥。相反,我将本地密钥添加到了伪造的SSH配置中。
我现在可以使用ssh forge@IPADDRESS
SSH进入EC2实例-一切正常。
我在同一VPC中设置了RDS实例。我已经从EC2实例对此进行了测试,并且可以:
mysql -h RDSINSTANCE.ENDPOINT.eu-west-2.rds.amazonaws.com -u USERNAME -p
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
这似乎工作正常。但是,当尝试通过带有设置的sequel pro连接到SQL时:
主机:127.0.0.1 端口:3307 使用者:USERNAME 密码:密码
我从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支持似乎认为这是因为隧道设置不正确,但是我不确定其他任何方式。
答案 0 :(得分:0)
我发现了问题。应当使用RDS端点而不是IP地址来设置ssh隧道:
ssh -L 3307: RDSINSTANCE.ENDPOINT.eu-west-2.rds.amazonaws.com:3306 forge@FORGE-PUBLIC-IP
EC2实例和RDS实例之间的VCS上的安全规则应使用私有IP。即RDS入站安全组允许来自EC2专用IP的MySQL / Aurora。