SSH 连接 VirtualBox Ubuntu 虚拟机

工具

VirtualBox

Ubuntu 虚拟机

Termius 终端

官网: https://termius.com/

Termius 不仅仅是一个 SSH 客户端,而是一个完整的命令行解决方案,重新定义远程访问。远比 XShell、Putty 等传统 SSH 客户端美观;提供账户注册和数据同步功能,支持多种操作系统如 Windows、Linux、OSX,甚至支持 iOS、Android。

功能:

  • Termius 可用于所有主要的移动和桌面系统
  • 享受精美的手工界面
  • 支持 ECDSA 和 ed25519 密钥以及 chacha20-poly1305 密码
  • Termius 始终没有广告
  • 将凭据和服务器配对以便快速访问
  • 创建组来定义共享设置和主题
  • 标记您的服务器以保持井井有条
  • 使用 12 种色彩丰富的主题和可调整的字体,让它成为你的专属
  • 通过黑暗模式在深夜会议中供电
  • 与同一主机建立多个连接或连接到多个主机
  • 端口转发让您几乎可以加密任何服务或连接
  • 通过命令行导入桌面的 ~/.ssh/config 文件
  • 使用我们的两窗格 SFTP 支持轻松复制文件
  • 用常用的 shell 命令片段保存你的手指
  • 使用 AES-256 端到端加密在所有设备上同步设置和凭据
  • 使用双重身份验证保护您的帐户
  • 通过 SSH 代理转发将您的密钥保存在您的机器上

新增 Host 时,只需要 ip、username 和 password 等 3 个信息即可连接一个远程服务端。

SFTP 提供本地和远程服务器之间文件传输功能,类似于 FileZilla。左侧是本地文件目录,右侧可以选择一个远程 Host,然后可以实现拖拽上传和下载。

要求

三种网络模式

三种网络模式分别为:

  1. 桥接模式(Bridge):在这种模式下,虚拟机通过连接到虚拟机交换机,利用虚拟网桥将虚拟机的网络连接到主机的网卡。这种模式下,虚拟机拥有独立的 IP 地址,并且可以在内部网络中与其他主机进行互相访问。此外,虚拟机也可以访问互联网。

  2. NAT 模式(Network Address Translation):在这种模式下,虚拟机会有一个虚拟的 NAT 设备(即虚拟路由器)连接到 VMware Network Adapter VMnet8 虚拟交换机。这个虚拟 NAT 设备负责将专用网络中的 IP 地址转换为主机系统使用的 IP 地址。这样,主机可以通过 VMware Network Adapter VMnet8 虚拟网卡连接到虚拟交换机,从而实现主机和虚拟机之间的网络连接。在这种模式下,虚拟机无法直接访问互联网,但可以通过 NAT 设备的转换功能访问互联网。同时,虚拟机之间也能够相互访问。

  3. 仅主机模式(Host-Only):在这种模式下,主机使用 VMware Network Adapter VMnet1 虚拟网卡连接到 VMnet1 虚拟交换机。由于缺少了 NAT 设备,虚拟机无法访问外部网络或互联网。但是,主机和虚拟机之间是可以相互访问的。这种模式的用途通常是创建一个与其它机器隔离的网络环境。

这些模式的使用场景各有不同。例如,桥接模式常用于创建虚拟服务器以提供内网服务;NAT 模式适用于需要虚拟机能够访问互联网但又不想暴露真实网络配置的场景;而仅主机模式则多用于隔离测试环境或者创建独立的网络空间。

选择适合你的模式

现在,让我们讨论一下如何选择适合你需求的模式。你的选择取决于你的使用场景和偏好。

1. 桥接模式

  • 适合与外部设备交互:如果你需要让其他与宿主机同一网络的设备直接与虚拟机通信,桥接模式可能更适合你。
  • 路由器配置可选:如果你对路由器的配置有一定的控制权,可以确保虚拟机能够正常连接。

2. NAT 模式

  • 简单且独立:NAT 模式更简单,适合不想处理路由器设置的用户。虚拟机与宿主机独立,并且不受外部网络的影响。
  • 无需外部访问:如果你只需要在虚拟机和宿主机之间建立 SSH 连接,而不需要外部设备访问虚拟机,NAT 模式可能更方便。

配置 SSH 连接

无论你选择了桥接模式还是 NAT 模式,都需要进行一些配置以启用 SSH 连接。

针对桥接模式

如果你选择了桥接模式,确保虚拟机能够获得来自外部路由器的 IP 地址。你可以在虚拟机中配置静态 IP 地址,以确保每次启动虚拟机时 IP 地址不会变化。然后,你可以使用宿主机或其他设备通过 IP 地址进行 SSH 连接。

针对 NAT 模式

在 NAT 模式下,需要进行端口映射以允许外部设备访问虚拟机。你可以在 VirtualBox 的设置中配置端口映射,将外部端口映射到虚拟机的 SSH 端口。这样,你可以使用宿主机的 IP 地址和映射的端口来进行 SSH 连接。

设置过程

桥接模式

启动虚拟机的 IP 即为本机 IP

NAT 模式

  1. 确认使用 NAT 连接

打开虚拟机,进入主界面:

右击所要设置的虚拟机,设置(Settings)->网络(Network):

如上所示,确保使用 NAT 网络连接方式;

  1. 配置端口转发规则

在上图中点击高级,出现下图中下级菜单,点击_端口转发_(Port Forwarding):

在弹出的对话框中配置转发规则(如果没有「Rule」,点击右上角的「+」,按下图填写配置规则):

点击「OK」,完成配置。

如上所示,本地主机连接端口设置为 1111(也可以是任意没有被系统占用的端口),而要连接的客户主机(虚拟机)端口设置为 2222 是 SSH 连接默认使用的端口,也可以设置为其它端口,设置后在客户主机中进行对应设置即可。设置完成后,NAT 网络会通过设置的本地端口转发到虚拟机对应的端口。

  1. 虚拟机开启 22 端口

VirtualBox 完成配置后,还要确认虚拟机中对应的 SSH 端口已经开启。在虚拟机中开启终端,编辑以下文件:

sudo vi /etc/ssh/sshd_config

确认以下监听端口已经开启: Port 22 

如图我的虚拟机中 sshd_config 文件显示 Port 22 未开启,删除 # 后保存并退出。

注意:SSH 端口也可以有多个,添加多个 Port 行即可。

设置完成后,使用以下命令重启 SSH

 sudo /etc/init.d/ssh restart 

4. SSH 连接虚拟机

配置完成后,就可以在本机的命令行客户端,使用以下 SSH 命令连接虚拟机:

ssh -l [username] -p 1111 127.0.0.1

相关资料

Linux—— 本机终端 SSH 连接 VirtualBox 中的 Linux 虚拟机

如何在 VMware 虚拟机中设置 SSH 连接:选择桥接还是 NAT?