我有一个带有私有子网的私有VPC,一个私有子网中的私有jumpbox,以及我在另一个私有子网中的私有RDS极光MySql无服务器实例。
我在本地笔记本上执行了这些命令,试图通过端口转发连接到我的RDS:
aws ssm start-session --target i-0d5470040e7541ab9 --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["5901"],"localPortNumber"=["9000"] --profile myProfile
aws ssm start-session --target i-0d5470040e7541ab9 --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["22"],"localPortNumber"=["9999"] --profile myProfile
aws ssm start-session --target i-0d5470040e7541ab9 --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["3306"],"localPortNumber"=["3306"] --profile myProfile 到服务器的连接挂起。
我的本地笔记本电脑出了这个错误:
Starting session with SessionId: myuser-09e5cd0206cc89542
Port 3306 opened for sessionId myuser-09e5cd0206cc89542.
Waiting for connections...
Connection accepted for session [myuser-09e5cd0206cc89542]
Connection to destination port failed, check SSM Agent logs.以及/var/log/amazon/ssm/errors.log中的这些错误
2021-11-29 00:50:35 ERROR [handleServerConnections @ port_mux.go.278] [ssm-session-worker] [myuser-017cfa9edxxxx] [DataBackend] [pluginName=Port] Unable to dial connection to server: dial tcp :3306: connect: connection refused
2021-11-29 14:13:07 ERROR [transferDataToMgs @ port_mux.go.230] [ssm-session-worker] [myuser-09e5cdxxxxxx] [DataBackend] [pluginName=Port] Unable to read from connection: read unix @->/var/lib/amazon/ssm/session/3366606757_mux.sock: use of closed network connection我试着像这样连接RDS:

我甚至尝试使用ssh隧道放置RDS端点,但它不起作用:

在远程服务器EC2-实例上还有其他步骤要执行吗?
连接似乎已被接受,但到目标端口的连接不起作用。
谢谢你在这方面的帮助!
发布于 2021-12-28 21:36:43
开始会话命令将端口从目标EC2实例隧道到本地主机。RDS实例位于另一个主机上,因此必须使用SSH隧道。
将您的公钥发送到EC2实例。填写区域和可用性区域参数。
aws ec2-instance-connect send-ssh-public-key --region us-west-2 --instance-id i-0d5470040e7541ab9 --availability-zone us-west-2a --instance-os-user ec2-user --ssh-public-key file://~/.ssh/id_rsa.pub将SSH端口22从EC2实例本地转发到9999。
aws ssm start-session --target i-0d5470040e7541ab9 --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["22"],"localPortNumber"=["9999"] --profile myProfile使用隧道进入实例的SSH (在另一个终端中)。填写RDS -实例- DNS与您的RDS实例DNS。
ssh ec2-user@localhost -L 6606:rds-instance-dns:3306 -i ~/.ssh/id_rsa -p 9999存取RDS
mysql -h localhost -p 6606还需要通过配置安全组来确保EC2实例具有访问RDS实例的正确权限。
https://stackoverflow.com/questions/70156742
复制相似问题