如何通过 SSH 连接到 VirtualBox - Linux 网络
在 Oracle VirtualBox 中安装 Linux 发行版后,您可能想知道如何从主机操作系统通过 SSH 访问虚拟机。毕竟,SSH 是通过命令行访问和管理系统的好方法。
不幸的是,VirtualBox 的默认配置不允许这种类型的连接。您的虚拟机很可能配置为 NAT 网络,但桥接网络接口非常适合来宾操作系统和主机操作系统之间的 SSH 连接。
在本教程中,我们将逐步说明如何配置 VirtualBox 虚拟机以接受传入的 SSH 连接。这将涉及 VirtualBox 设置中的一些配置,以及确保您在来宾操作系统上正确安装和配置了 SSH 服务。
在本教程中您将学习:
如何在 VirtualBox 中配置桥接网络接口
如何安装 SSH、启动 SSH 以及允许 SSH 通过防火墙
主机和来宾之间 SSH 连接的故障排除步骤
在虚拟机上配置桥接网络
我们需要做的第一件事是将虚拟机的网络类型设置为桥接网络。这将允许主机和来宾操作系统之间建立连接。它不应该破坏虚拟机上的互联网连接。请按照以下步骤进行设置。
这部分就完成了。现在,如果从主机系统连接到虚拟机时仍然遇到问题,您可以继续执行下一部分。
在虚拟机上配置 SSH
配置桥接网络后是否仍无法连接?最有可能的是,这是因为您的 SSH 服务器未在来宾操作系统上正确设置。执行以下故障排除步骤,确保您的虚拟机接受 SSH 传入连接。
首先要确保您确实安装了 SSH。并非每个 Linux 发行版都默认安装它。
在基于 Debian 的系统上安装 SSH 服务器:
$ sudo apt install ssh
在基于 Red Hat 的系统上安装 SSH 服务器:
$ sudo dnf install openssh-server
接下来,使用适当的 systemd 命令启动 Linux 发行版的 SSH 服务,确保 SSH 服务正在运行。
在基于 Debian 的系统上启动 SSH 服务器:
$ sudo systemctl start ssh
在基于 Red Hat 的系统上启动 SSH 服务器:
$ sudo systemctl start sshd
接下来,确保您的系统允许通过系统防火墙连接到 SSH。
对于带有 ufw(简单防火墙)的系统,例如 Ubuntu:
$ sudo ufw allow ssh
对于带有firewalld的系统,例如基于Red Hat的系统:
$ sudo firewall-cmd --zone=public --permanent --add-service=ssh $ sudo firewall-cmd --reload
对于仅使用普通 iptables 的系统:
$ sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
接下来要确保的是,您没有尝试通过 SSH 访问来宾操作系统上的 root 帐户。默认情况下,禁用 SSH 的 root 登录。如果您需要启用此功能,则需要将此行添加到虚拟机中的
/etc/ssh/ssh_config
配置文件中。PermitRootLogin yes
然后重启服务:
$ sudo systemctl restart ssh
结束语
在本教程中,我们了解了如何在 VirtualBox 虚拟机和主机 Linux 操作系统之间启用 SSH 连接。要启用连接,我们只需配置桥接网络设置。如果这不起作用,则很可能是未在来宾操作系统上安装 SSH 服务或只是未正确配置,为此我们展示了几个故障排除步骤。