为 Ubuntu 虚拟机构建 SSH 服务器

以校园网环境和VMware为例,关键步骤如下:

  1. 安装 SSH 服务

    • 打开 Ubuntu 虚拟机。
    • 打开终端。
    • 输入命令 sudo apt-get update 更新软件包列表。
    • 输入命令 sudo apt-get install openssh-server 安装 SSH 服务。
  2. 配置 SSH 服务

    • 编辑配置文件:sudo nano /etc/ssh/sshd_config
    • 确认或修改配置,例如更改端口号(默认为22),禁用 root 用户登录等。
    • 保存并关闭文件。
    • 重启 SSH 服务以应用更改:sudo service ssh restart
  3. 设置防火墙规则(如果有):

    • 允许 SSH 端口(默认为22)通过防火墙:sudo ufw allow 22
    • 激活防火墙:sudo ufw enable
  4. 在校园网环境中配置网络

    • 确保虚拟机网络设置为桥接模式,这样它会在校园网络中获得一个独立的 IP 地址。
    • 确定虚拟机的 IP 地址:在虚拟机终端中输入 ip addrifconfig
  5. 从其他计算机连接到 SSH 服务器

    • 使用 SSH 客户端(如 PuTTY 或终端)连接到虚拟机。
    • 输入命令 ssh username@your_vm_ip_address,其中 username 是你的 Ubuntu 用户名,your_vm_ip_address 是虚拟机的 IP 地址。
    • 接受安全警告并输入密码完成连接。
    • 注意: 如果打算从校园网络之外的地方访问你的 SSH 服务器,可能需要配置端口转发或 VPN,这取决于校园网络的配置

以上为网络桥接模式 的配置,下面为NAT模式的配置:

在虚拟机中使用 NAT(网络地址转换)模式来设置 SSH 服务器是可能的,但它与桥接模式有一些不同的考虑因素。NAT 模式允许虚拟机通过主机机器共享其网络连接,但不会为虚拟机提供独立的 IP 地址。这意味着在使用 NAT 模式时,进行外部连接到虚拟机的 SSH 服务器稍微复杂一些。

  1. 在虚拟机中设置 SSH 服务器

    • 按照前面提到的步骤在 Ubuntu(或其他操作系统)虚拟机中安装和配置 SSH 服务器。
  2. 配置 NAT 网络设置

    • 在虚拟机设置中,确保网络适配器设置为 NAT 模式。
    • 在虚拟化软件(如 VirtualBox 或 VMware)中,找到网络设置。
    • 设置端口转发规则,以便将主机机器上的特定端口(如 2222)转发到虚拟机的 SSH 端口(通常为 22)。
复制代码
   例如,在 VMware 中,你可以这样设置端口转发:
    	选择"编辑"菜单中的"虚拟网络编辑器"。
    	在虚拟网络编辑器中,选择用于 NAT 的网络(通常是 VMnet8)。
    	点击"NAT 设置"或"网络适配器"旁的"编辑"按钮。
    	在弹出的对话框中,选择"端口转发"或"端口映射"选项。
    	点击"添加"或类似按钮以创建新的端口转发规则。
    	在相关字段中输入以下信息:
    	主机端口:选择一个未被主机上其他服务使用的端口号(例如 2222)。
    	虚拟机 IP 地址:输入虚拟机的 IP 地址。可以在虚拟机内部通过运行 ip addr 或 ifconfig 命令来找到这个地址。
    	虚拟机端口:输入虚拟机上 SSH 服务的端口号(默认为 22)。
  1. 从外部设备连接
    • 使用 SSH 客户端连接到你的 Windows 主机的 IP 地址,而不是直接连接到虚拟机。
    • 使用之前设置的端口号。例如,如果你将主机的 2222 端口映射到虚拟机的 22 端口,则使用命令 ssh -p 2222 username@your_windows_host_ip
    • 这里,username 是虚拟机的用户名,your_windows_host_ip 是 Windows 主机的 IP 地址。
相关推荐
明王明王12 分钟前
Ubuntu 26.04 使用 Windows Spotlight:给 Bing Wallpaper 加上 Spotlight 支持
linux·windows·ubuntu
夜月yeyue15 分钟前
SOME/IP 服务模型
linux·服务器·单片机·安全·车载系统
江湖有缘34 分钟前
Docker开源项目: 基于Ubuntu系统部署ExpenseOwl自托管记账工具实战教程
ubuntu·docker·开源
程序员z734 分钟前
深入理解 GMP 模型:Go 协程调度器的设计与调度场景全解析
服务器·网络·golang
一直C40 分钟前
【数据结构】哈希表+算法复杂度与经典排序查找(C语言)
java·linux·开发语言·数据结构·算法·ubuntu·散列表
土星云SaturnCloud1 小时前
高速服务区AI视觉全场景方案:安全管控+运营提效+服务升级,土星云边缘算力赋能智慧交通
服务器·人工智能·ai·边缘计算
土星云SaturnCloud2 小时前
Real-ESRGAN超分辨率算法原理与边缘侧部署实践
服务器·算法·ai·边缘计算·real-esrgan
朋友圈自动点赞工具3 小时前
NAS游戏库自动下载新方案,Questarr部署教程
服务器·数据库·游戏·科技资讯
苹果嘉尔121383 小时前
Linux系统编程——网络(TCP)
linux·运维·服务器
昌原的儿子LEO4 小时前
Linux进程知识点总结
linux·服务器·c语言·数据库