我有一些可通过 EC2 实例访问的 RDS 实例(每个 RDS 都有其跳转 EC2)。目前,我正在使用 DBEaver 社区版连接到数据库,配置到 EC2 的 ssh 隧道。
出于安全原因,我无法再使用 ssh,因此无法从我的本地计算机访问 RDS。我必须使用带有 SSM 身份验证的 aws 角色。
我已成功连接到我的 EC2,并打开 SSM 隧道。我使用了以下 ssh 配置文件。
Host goffy
HostName i-#########
User donald
IdentityFile ~/.ssh/id_rsa
ProxyCommand sh -c "aws ssm start-session --profile my-profile --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
现在麻烦了。我想在 DBeaver 上使用它。我尝试使用 SSM 在本地主机中打开隧道,以便我可以将 dbeaver 连接配置为从本地主机到 EC2 的隧道,但这意味着我必须保持终端打开,并可能为我拥有的每个 RDS 选择不同的端口:
aws ssm start-session --target "i-#########" --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["22"],"localPortNumber"=["2222"]
是否可以配置 DBEaver 连接以使用 .ssh/config 文件中包含的代理命令?
这是 DBeaver 原生支持的功能。
请查看此处的文档以获取详细说明:https://dbeaver.com/docs/dbeaver/AWS-SSM-Configuration/
最终 DBeaver 可以处理 AWS 身份验证、授权(如果需要)、隧道设置和重复使用的凭证持久性。