无法通过 ssh 连接到虚拟机

无法通过 ssh 连接到虚拟机

通常使用 SSH 如果你执行“telnet localhost 22”,你会得到如下返回信息:

SSH-2.0-OpenSSH_6.7p1 Ubuntu-5ubuntu1

此时客户端应该发回类似的内容,然后进行算法协商。

因此,如果我telnet localhost 22从我的客户机 (Ubuntu) 执行此操作,就会发生这种情况。如果我这样做,sudo netstat -lntp我会看到以下内容:

Proto Recv-Q Send-Q Local Address       Foreign Address     State
tcp        0      0 0.0.0.0:22          0.0.0.0:*           LISTEN
tcp        0      0 :::22               :::*                LISTEN

所以在我看来这一切都很好。

我的 Virtual Box 端口转发设置如下:

在此处输入图片描述

主机正在运行Windows 8.1。

如果我尝试从主机操作系统(Windows 8.1)连接到 localhost:4022,则无法获得SSH-2.0-OpenSSH_6.7p1 Ubuntu-5ubuntu1通过客户操作系统连接到端口 22 时获得的结果。我不知道为什么。

有任何想法吗?

答案1

您是否已确保在 iptables 中打开了端口?我相当确定默认情况下大多数/所有端口都是被阻止的。

这是一个快速测试。

使用以下命令检查当前的 iptables 设置:

sudo iptables -L

我预计您会看到它没有当前规则,这意味着它将拒绝连接。因此,作为验证它是 iptables 的测试,刷新表以允许所有(这是一个临时操作,仅用于测试):

sudo iptables -F

现在尝试您的外部 SSH 连接。
如果成功,则表明它是 iptables。重新启动 iptables(“sudo service iptables restart”),然后查看添加允许 SSH 访问的规则。您可以对规则进行相当细致的设置。网上有很多资源,这些资源由比我更精通 iptables 的人编写,您可以通过快速搜索找到这些资源,以帮助您添加规则。

答案2

我认为您的虚拟网络已配置为 NAT。

在端口转发规则中,只需将两个地址字段留空。

测试从另一台机器连接到您主机的 4022 端口。

相关内容