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

Mac系统通过堡垒机搭建SSH隧道实现Python连接AWS生产数据库方法咨询

Mac系统SSH隧道连接堡垒机访问AWS MSSQL配置方案

Mac系统自带原生SSH客户端,无需额外安装工具即可实现和Windows下Putty一样的SSH隧道功能,配置步骤如下:

1. 临时隧道配置(测试使用)

直接在终端运行以下命令即可建立端口转发:

ssh -L 14330:mssql-prod.aws.endpoint.com:1433 xum345434@bastion_host.com
  • 参数说明:-L 表示本地端口转发,将本地14330端口的流量通过堡垒机转发到目标数据库的1433端口(MSSQL默认服务端口)
  • 运行命令后输入堡垒机登录密码,保持当前终端窗口不关闭,隧道就持续生效。

2. 持久化隧道配置(适合日常/定时脚本使用)

方法1:命令后台运行

在基础命令上添加-fN参数,运行后隧道直接转入后台,无需保持终端窗口开启:

ssh -fN -L 14330:mssql-prod.aws.endpoint.com:1433 xum345434@bastion_host.com
  • -f:SSH连接验证通过后转入后台运行
  • -N:不执行远程命令,仅做端口转发

方法2:SSH配置文件固化(推荐)

编辑本地SSH配置文件~/.ssh/config,添加以下配置段:

Host bastion-mssql
  HostName bastion_host.com
  User xum345434
  LocalForward 14330 mssql-prod.aws.endpoint.com:1433
  ServerAliveInterval 60
  ServerAliveCountMax 3

后续只要在终端运行ssh -fN bastion-mssql即可启动隧道,配置里的ServerAlive参数会自动发送保活请求,避免隧道因长时间无操作断开。

如果需要免密登录堡垒机,把本地公钥~/.ssh/id_rsa.pub的内容追加到堡垒机的~/.ssh/authorized_keys文件中即可,不需要每次运行都输入密码,适配你每日自动运行Python脚本的场景。

3. 连通性验证

隧道启动后运行以下命令验证端口是否通:

nc -zv localhost 14330

返回succeeded字样即说明隧道配置成功。

4. Python代码调整说明

你现有Python连接代码不需要做任何修改,连接localhost,14330的配置已经匹配上述隧道的端口转发规则,隧道生效后直接运行脚本即可正常访问生产数据库。
如果出现连接失败的情况优先排查以下几点:

  • 堡垒机是否有权限访问目标AWS数据库的1433端口
  • 本地14330端口是否被其他进程占用,如被占用可换用其他未被占用的端口,同步修改隧道转发配置和Python代码里的端口即可
  • 如果堡垒机需要用密钥登录,需要在SSH命令/配置中添加IdentityFile参数指定私钥路径

内容的提问来源于stack exchange,提问作者26Cocktails

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:54:03