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

Vagrant多VM SSH连接异常:仅一台可连其余失败求助

故障排查与修复方案

核心问题定位

你混淆了Vagrant SSH端口转发和VM内部SSH服务端口的区别:

  • forwarded_port是将主机的端口(如2712)转发到VM内部的22端口,仅当通过localhost连接时需要使用这个主机端口;
  • 直接连接VM的私有IP(如192.168.56.3)时,VM的SSH服务监听的是自身的22端口,而非主机的转发端口。

你的ssh vagrant@192.168.56.3 -p 2712命令本质是错误的——VM的2712端口根本没有服务监听,自然会被拒绝连接。Ansible连接失败也是因为清单错误配置了ansible_ssh_port为主机转发端口。


具体排查与修复步骤

1. 修正Ansible清单配置

你有两种可选的连接方式,二选一即可:

方式一:直接通过私有IP连接VM(推荐)

修改清单中的ansible_ssh_port为VM内部的SSH默认端口22:

{
  "all": {
      "hosts": {
          "kubemaster": {
              "ansible_host": "192.168.56.2",
              "ansible_user": "vagrant",
              "ansible_ssh_port": 22
          },
          "kubenode01": {
              "ansible_host": "192.168.56.3",
              "ansible_user": "vagrant",
              "ansible_ssh_port": 22
          },
          "kubenode02": {
              "ansible_host": "192.168.56.4",
              "ansible_user": "vagrant",
              "ansible_ssh_port": 22
          }
      },
      "children": {},
      "vars": {}
  }
}

方式二:通过主机转发端口连接

如果要使用localhost的转发端口,需将ansible_host设为localhost,保留原转发端口:

{
  "all": {
      "hosts": {
          "kubemaster": {
              "ansible_host": "localhost",
              "ansible_user": "vagrant",
              "ansible_ssh_port": 2711
          },
          "kubenode01": {
              "ansible_host": "localhost",
              "ansible_user": "vagrant",
              "ansible_ssh_port": 2712
          },
          "kubenode02": {
              "ansible_host": "localhost",
              "ansible_user": "vagrant",
              "ansible_ssh_port": 2713
          }
      },
      "children": {},
      "vars": {}
  }
}

2. 验证VM内部SSH服务状态

登录到无法连接的kubenode01/02节点,执行以下命令确认SSHD服务正常:

# 检查SSHD监听端口
ss -tulpn | grep sshd
# 输出应包含 0.0.0.0:22 或 [::]:22,说明监听所有网卡的22端口

# 检查防火墙规则(Ubuntu默认UFW未启用,若启用需确认22端口放行)
sudo ufw status

3. 确认Vagrant配置的正确性

  • 检查VM私有IP分配:登录节点后执行ip addr show enp0s8,确认IP与Vagrantfile中定义的192.168.56.3/192.168.56.4一致;
  • 检查公钥配置:查看/home/vagrant/.ssh/authorized_keys,确认包含本地~/.ssh/ansible.pub的内容,确保无格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:45:38