无法通过SSH隧道连接到远程AzureDB服务器

时间:2020-03-25 08:49:51

标签: ssh azure-sql-database remote-access sqlcmd ssh-tunnel

我想从我的本地计算机(其IP地址为 ip2 并且主机名为 abc .database.windows.net”)连接到远程AzureDB服务器。的IP地址为 ip1 )。但是,我的本地主机无法直接访问数据库服务器,因此我不得不通过跳转服务器(具有 ip3 并能够访问AzureDB服务器)使用SSH隧道进行连接。这是我在做什么:

1,创建SSH隧道:

ssh -v -g -N -C -L local-port:**ip2**:1433 ssh-user@**ip3** -p 22

2,连接到数据库服务器

sqlcmd -S 127.0.0.1,local-port -U db-user@**abc**.database.windows.net -P password -d db-name

但是我得到了错误:

无法打开登录名请求的服务器“ abc ”。 IP客户端 地址“ ip1 ”不允许访问服务器。启用 访问,使用Windows Azure管理门户或运行 在master数据库上使用sp_set_firewall_rule创建防火墙规则 该IP地址或地址范围。最多可能需要五分钟 才能使更改生效。

我检查了与telnet的隧道连接,未显示任何错误。谁能告诉我我的工作出了什么问题?

1 个答案:

答案 0 :(得分:0)

如果我们要访问远程Azure SQL数据库,请确保已将本地IP' ip1 '添加到Portal上的Azure SQL Server firewall

enter image description here

请尝试以下命令:

ssh -L local_port:abc.database.windows.net:1433 db-user@abc.database.windows.net

sqlcmd -S 127.0.0.1,local-port -U db-user@**abc**.database.windows.net -P password -d db-name

也请参考此博客:

  1. Unable to reach SQL database through SSH tunnel using sqlcmd
  2. Configuring SSH Tunnels for Database Connections

希望这会有所帮助。