如何修改SSH隧道命令,使用不同密钥对连接私有EC2实例PostgreSQL
修改SSH隧道命令适配不同密钥对
当堡垒机(跳板机)和私有EC2实例使用不同密钥对时,你需要通过嵌套SSH连接实现端口转发,以下是两种可行的修改方案:
方案1:使用ProxyJump(SSH 7.4及以上版本支持)
直接通过-J参数指定跳板机,同时携带两个密钥对(堡垒机密钥在前,私有实例密钥在后):
ssh -N -i my-keypair.pem -i my-different-keypair.pem -L 5555:10.1.22.67:5432 -J ec2-user@14.229.71.224 ec2-user@10.1.22.67
-J ec2-user@14.229.71.224:指定跳板机地址- 两个
-i参数分别对应堡垒机和私有实例的密钥对 - 端口转发规则
-L 5555:10.1.22.67:5432保持不变
方案2:使用ProxyCommand(兼容旧版SSH)
通过ProxyCommand先建立到堡垒机的连接,再转发到私有实例:
ssh -N -i my-different-keypair.pem -L 5555:10.1.22.67:5432 ec2-user@10.1.22.67 -o ProxyCommand="ssh -W %h:%p -i my-keypair.pem ec2-user@14.229.71.224"
- 外层命令用于连接私有实例,指定其密钥
my-different-keypair.pem ProxyCommand内的命令负责连接堡垒机,使用其密钥my-keypair.pem-W %h:%p表示将私有实例的连接请求通过堡垒机转发
DBeaver连接说明
启动上述任一命令后保持终端窗口打开,在DBeaver中仍按原有方式连接:
- 主机填
localhost - 端口填
5555 - 数据库用户名、密码等信息不变
内容的提问来源于stack exchange,提问作者Mike Abbey
相关产品推荐
相关产品推荐

