无法通过SSH连接到Azure虚拟机--连接超时。

5

我正在尝试使用Azure CLI创建虚拟机并从Azure Cloud Shell中使用ssh登录。我已按照官方指南(https://learn.microsoft.com/zh-cn/azure/virtual-machines/linux/quick-create-cli)运行以下命令:

$ az group create --name myGroupName --location westus2
$ az vm create --resource-group myGroupName --name myVmName --image UbuntuLTS --admin-username azureuser --generate-ssh-keys

然而,当尝试使用上述第二个命令报告的公共IP地址通过ssh连接时,连接超时:

$ ssh -vvv azureuser@publicIpAddress
OpenSSH_7.2p2 Ubuntu-4ubuntu2.10, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "publicIpAddress" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to publicIpAddress [publicIpAddress] port 22.
debug1: connect to address publicIpAddress port 22: Connection timed out
ssh: connect to host publicIpAddress  port 22: Connection timed out

有没有关于我做错了什么的建议?
此外,我尝试在我的本地机器上使用PowerShell运行这些命令。我发现,在创建新的资源组并启动虚拟机后,我能够使用PowerShell ssh到虚拟机。但是当我断开与VM的连接,然后尝试再次ssh回去时,由于超时错误而无法重新连接。如果我尝试在同一资源组下创建一个新的VM,则完全无法ssh进入它。相反,如果我创建一个新的资源组和一个新的VM,第一次可以ssh进去,但是以后就不行了。

ssh -vvv azureuser@publicIpAddress - 你填写了实际的公共 IP 地址吗?从日志信息中看来,似乎你没有执行这一步骤。 - Ervin Szilagyi
是的,我使用了实际的公共IP地址,并仅将其替换为“publicIpAddress”以在此处发布。 - wbinventor
5个回答

4
据我所知,在创建 Azure 虚拟机之后,您可以通过 Azure 策略或其他方式检查当前订阅中是否自动关联了 NSG 到您的 VM NIC 或子网。可能会在 NSG 中添加一些入站端口规则以阻止网络连接。如果要 SSH 进入 Azure 虚拟机,则必须具有更高优先级的入站规则来允许访问端口 22,如下所示。您还可以将客户端公共 IP 添加为规则中的,以缩小限制范围。

enter image description here


感谢@Nancy Xiong的建议。您是正确的,我的订阅会向NSG添加一些入站端口规则以阻止SSH连接。这似乎发生在创建VM后的1-2分钟内。当我修改这些规则以允许来自我的源IP的SSH时,NSG会自动恢复规则到先前的设置。因此,我认为由于我的订阅中的Azure策略,可能无法永久修改它们。 - wbinventor
要自动定位问题规则:请尝试在Azure门户中测试您的连接。它会指向Networking选项卡中可能阻止连接的确切入站规则。 - Kartik Raj

1
在我的情况下,它解决了重置SSH配置的问题,在“重置密码”>“仅重置配置”>“更新”按钮中:

enter image description here


0
意识到由于虚拟机中NIC的更改而失去了连接,因此如果您也是这种情况,您应该查看并取消关联旧的公共IP地址(连接到旧的NIC),然后再将其与新的NIC关联。希望这能帮助其他人 :)

0

请尝试在 Azure 门户中测试您的连接

enter image description here

它会指向 Networking 选项卡内确切的入站规则,可能会阻止你的连接。


0
除了上述步骤外,您可能希望从Windows服务手动启动OpenSSH SSH服务器服务。
Services.exe -> OpenSSH SSH服务器 -> 启动服务并将启动类型从手动更改为自动。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接