安装Gnome后无法通过Azure Bastion SSH连接Ubuntu 16.04 VM的技术求助
Azure Bastion SSH 连接 Ubuntu 16.04 失败(安装 Gnome 后)
我之前能正常通过 Azure Bastion SSH 连接我的 Ubuntu 16.04 虚拟机,但在安装 Gnome 桌面环境并重启后,连接时弹出错误:
“目标计算机当前无法访问,或用户名/密码不正确。请重新验证凭据。若问题持续,请联系支持人员。”
已确认登录凭据无误,Azure 支持排查后给出结论:前端(本地到 Bastion 主机公网 IP)连接完全正常,但后端(Bastion 到目标虚拟机 linux-vm-0(10.x.x.x))的连接被拒绝;同时 Boot Diagnostics 界面能看到 Gnome 登录界面,说明虚拟机本身已正常启动运行。结合问题触发的时间节点,推测故障和 Gnome 桌面的安装操作相关,以下是几个针对性的排查方向和解决方案:
1. 检查 SSH 服务状态与核心配置
Gnome 安装过程可能意外修改了 SSH 服务的配置,或者导致服务未正常启动:
- 可以通过 Azure 门户的 Serial Console(需提前启用)登录虚拟机,先检查 SSH 服务状态:
sudo systemctl status sshd - 如果服务未运行,手动启动它:
sudo systemctl start sshd - 确保 SSH 服务设置为开机自启,避免后续重启再次出问题:
sudo systemctl enable sshd - 打开 SSH 配置文件
/etc/ssh/sshd_config,确认几个关键配置项:PasswordAuthentication yes(如果使用密码登录,必须确保此项开启)ListenAddress 0.0.0.0(确保服务监听所有网卡,而非仅本地回环)PermitRootLogin no(如果用普通用户登录,保持默认即可,不要随意开启 root 远程登录)
修改完成后重启 SSH 服务生效:
sudo systemctl restart sshd
2. 排查防火墙规则(UFW/iptables)
Gnome 安装可能触发了防火墙规则的变更,阻止了 Bastion 所在网段的 SSH 流量:
- 先查看 UFW 状态:
sudo ufw status - 如果 UFW 处于启用状态,需要确保允许 Bastion 子网的 IP 段(比如 Azure 分配的
10.x.x.0/24)访问 22 端口:sudo ufw allow from 10.x.x.0/24 to any port 22 - 若使用原生 iptables,检查现有规则:
如果没有针对 Bastion 网段的放行规则,手动添加:sudo iptables -L -n | grep 22sudo iptables -A INPUT -s 10.x.x.0/24 -p tcp --dport 22 -j ACCEPT
3. 检查 PAM 认证模块配置
Gnome 桌面可能修改了 PAM(可插拔认证模块)的配置,导致 SSH 远程登录验证失败:
- 打开 SSH 对应的 PAM 配置文件
/etc/pam.d/sshd,检查是否存在会限制远程登录的规则(比如某些桌面环境添加的会话限制)。 - 如果发现可疑配置,先备份原文件,再恢复为 Ubuntu 16.04 默认的 SSHD PAM 配置(默认配置不会限制远程密码登录)。
4. 验证虚拟机网络与 NSG 规则
确认虚拟机的网络层面没有阻断 Bastion 的连接:
- 在 Azure 门户确认虚拟机的私有 IP 仍为
10.x.x.x(和支持人员排查的一致)。 - 检查虚拟机子网的 NSG(网络安全组),确保允许来自 Bastion 子网的 TCP 22 端口入站流量。
- 同时检查 Bastion 主机的 NSG,确保允许出站到虚拟机子网的 TCP 22 端口流量。
如果以上步骤都尝试后仍无法解决,可以使用 Azure 门户的 VM 修复功能,将故障虚拟机的系统磁盘挂载到另一台正常运行的 Ubuntu 虚拟机上,直接检查和修改 SSH 配置、防火墙规则等文件。
内容的提问来源于stack exchange,提问作者Stpete111
相关产品推荐
相关产品推荐

