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

能否使用az ssh创建SSH隧道连接Azure VNet内的PostgreSQL弹性服务器?

使用az ssh创建SSH隧道连接Azure VNet内的PostgreSQL弹性服务器

完全可以通过az ssh命令创建SSH隧道,并且无需管理开发者的SSH密钥——借助Azure AD身份验证就能实现安全访问,具体操作如下:

前提条件

  • 堡垒机虚拟机已配置Azure AD SSH登录(确保开发者可通过Azure AD账号登录堡垒机)
  • 开发者本地已安装Azure CLI(版本需支持az ssh隧道功能)和PostgreSQL客户端(如psql)
  • 堡垒机的网络安全组(NSG)允许来自开发者本地IP的SSH(22端口)流量
  • PostgreSQL弹性服务器的防火墙规则已允许堡垒机的私有IP访问

操作步骤

1. 创建SSH隧道

在本地终端执行以下命令,建立本地端口到PostgreSQL服务器的隧道:

az ssh vm \
  --resource-group <堡垒机资源组名称> \
  --name <堡垒机虚拟机名称> \
  --local-port 54320 \
  --remote-host <PostgreSQL弹性服务器FQDN> \
  --remote-port 5432

参数说明:

  • --local-port:本地用于转发的端口(可自定义,只要未被占用即可)
  • --remote-host:PostgreSQL弹性服务器的完整域名(如mypgserver.postgres.database.azure.com)
  • --remote-port:PostgreSQL默认端口5432

执行命令后,Azure CLI会自动通过Azure AD完成身份验证,无需输入SSH密钥。

2. 本地连接PostgreSQL

保持隧道终端窗口运行,打开新的本地终端,用psql连接:

psql "host=localhost port=54320 dbname=<数据库名称> user=<PostgreSQL用户名> password=<PostgreSQL密码>"

核心优势

  • 无需分发和管理SSH密钥,所有访问权限通过Azure AD统一管控
  • 开发者只需使用自己的Azure AD账号即可建立隧道,权限变更直接在Azure AD中调整
  • 隧道连接全程加密,符合安全合规要求

注意事项

  • 若本地54320端口已被占用,可更换其他未使用的端口(如54321),确保psql命令中的端口与隧道端口一致
  • 堡垒机需保持运行状态,隧道终端窗口关闭后连接会中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:05:22