You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过已配置的SSH堡垒机在DBeaver中连接RDS Postgres?

解决DBeaver通过SSH堡垒机连接RDS Postgres的问题

问题背景

已完成RDS的SSH堡垒机搭建,终端手动执行以下命令可正常建立隧道并连接RDS:
连接堡垒机:

ssh -i ~/.ssh/cdk-ssh-bastion-rds -l ec2-user public-ip-address

建立端口转发:

ssh -i ~/.ssh/cdk-ssh-bastion-rds -f -N -L 1080:rds-instance.us-east-1.rds.amazonaws.com:5432 ec2-user@public-ip-address -v

但直接通过DBeaver的SSH配置页设置隧道时连接失败,已尝试在堡垒机/etc/ssh/sshd_config中开启PubkeyAuthentication yes并重启sshd,问题仍存在。需要实现无需手动建隧道,仅通过DBeaver+密钥对让Mac/Windows用户直接连接的方案。

排查与解决步骤

1. 修正DBeaver SSH配置细节

确保DBeaver的配置和手动命令完全匹配,重点检查:

  • 密钥文件路径:Mac使用绝对路径(如/Users/xxx/.ssh/cdk-ssh-bastion-rds),Windows避免用相对路径,直接选择密钥文件所在的绝对路径(注意不要用记事本编辑密钥,防止引入多余换行符)
  • SSH基本信息:堡垒机主机填公网IP,端口默认22,用户名ec2-user,认证方式选「密钥文件」并选中本地的密钥
  • 端口转发配置:在「SSH」标签的「端口转发」子页添加规则:
    • 本地端口:1080(和手动命令一致)
    • 目标主机:rds-instance.us-east-1.rds.amazonaws.com(RDS完整端点)
    • 目标端口:5432
  • 主连接页配置:主机填localhost,端口填1080,其余填RDS的数据库名、用户名和密码

2. 检查堡垒机SSH权限与配置

除了PubkeyAuthentication yes,还要确保以下配置正确:

  • 堡垒机ec2-user的.ssh目录权限为700,authorized_keys文件权限为600,执行命令修复:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  • 确认sshd_config中AllowUsers未限制ec2-user登录(如果配置了该选项,需包含ec2-user)
  • 重启sshd服务:
    sudo systemctl restart sshd
    

3. 修正本地密钥文件权限

  • Mac/Linux:密钥文件权限必须为600,否则SSH会拒绝使用,执行:
    chmod 600 ~/.ssh/cdk-ssh-bastion-rds
    
  • Windows:右键密钥文件→属性→安全→高级,删除所有非当前用户的权限,仅保留当前用户的「读取」权限(Windows SSH客户端会拒绝权限过宽的密钥)

4. 排查DBeaver SSH客户端设置

DBeaver默认可能使用内置SSH客户端,若仍失败:

  • 打开DBeaver设置→连接→SSH,选择「使用系统SSH客户端」
  • 确保系统SSH客户端(Mac的Terminal、Windows的PowerShell/WSL)能正常连接堡垒机(手动命令已验证,此步可快速定位是否为DBeaver内置客户端问题)

5. 查看DBeaver诊断日志定位错误

若以上步骤仍失败,打开DBeaver→帮助→诊断日志,搜索「SSH」或「tunnel」相关错误信息,比如:

  • 密钥认证失败:检查密钥路径、权限或堡垒机authorized_keys是否包含对应公钥
  • 端口转发失败:确认堡垒机安全组允许22端口、RDS安全组允许堡垒机私有IP访问5432端口

内容的提问来源于stack exchange,提问作者Tsar Bomba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:25:55