为 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 地址。
相关推荐
杨云龙UP2 小时前
MySQL 数据库常用备份工具对比:mysqldump、mydumper 与 XtraBackup
linux·运维·服务器·数据库·mysql·dba·备份恢复
happymagic3 小时前
java spring boot做的jar包程序,如何实现自动运行启动
java·运维·服务器·spring boot·jar
Dr.kangder4 小时前
嵌入式处理器仿真技术——Hypervisor 原理与实践
服务器·嵌入式硬件·架构·嵌入式
星蓝_starblue6 小时前
零服务器、零数据库!开源growth-board,利用GitHub自动管理刷题/学习/求职全流程
服务器·数据库·程序人生·系统架构·node.js·github·改行学it
云飞云共享云桌面9 小时前
广东精密机械设备工厂8-10人共享一台SolidWorks设计服务器
运维·服务器·3d·自动化·汽车·制造
jieyucx9 小时前
【高级利用】条件竞争与逻辑漏洞:与服务器赛跑的艺术
android·运维·服务器·web安全·文件上传
tianyuanwo9 小时前
服务器OS组件研发效能度量可视系统——顶层方案设计与阶段性规划
运维·服务器·度量系统
初级炼丹师(爱说实话版)9 小时前
Ubuntu服务器配置docker
服务器·ubuntu·docker
机建狂魔9 小时前
Codex 接入第三方模型 API 实战:以 Mimo 为例
java·服务器·数据库·ai·ai编程·codex
土星云SaturnCloud10 小时前
智慧温室精准环控:土星云边缘计算设备实现温光水肥本地闭环调节
服务器·人工智能·ai·边缘计算