温馨提示×

Ubuntu虚拟机如何使用SSH登录

小樊
63
2025-10-05 22:31:48
栏目: 云计算

Ubuntu虚拟机使用SSH登录完整指南

一、前置准备

在开始前,请确保:

  1. 已安装并正常运行Ubuntu虚拟机(通过VMware、VirtualBox等虚拟化软件);
  2. 虚拟机已连接到网络(能访问互联网或局域网);
  3. 记住虚拟机的登录用户名(如默认的ubuntu)和密码。

二、在Ubuntu虚拟机中安装并启用SSH服务

SSH服务(OpenSSH Server)是远程登录的核心组件,需先在虚拟机中安装并配置。

1. 安装OpenSSH Server

打开虚拟机终端(快捷键Ctrl+Alt+T),依次执行以下命令:

sudo apt update          # 更新软件包列表
sudo apt install openssh-server  # 安装OpenSSH服务器

安装过程中会提示输入当前用户密码,安装完成后SSH服务会自动启动。

2. 启动SSH服务并设置开机自启

sudo systemctl start ssh     # 启动SSH服务
sudo systemctl enable ssh    # 设置开机自启(避免重启后需手动启动)

3. 验证SSH服务状态

sudo systemctl status ssh

若输出中显示active (running)(如● ssh.service - OpenBSD Secure Shell server),说明SSH服务已成功运行。

三、获取Ubuntu虚拟机的IP地址

要从主机(本地电脑)连接虚拟机,需知道虚拟机的IP地址。在虚拟机终端执行:

ip addr show

或使用快捷命令:

hostname -I

在输出结果中,找到inet后面的IPv4地址(如192.168.1.100/24),这就是虚拟机的局域网IP地址(通常位于eth0ens33网卡下)。

四、从主机连接Ubuntu虚拟机

根据主机系统不同,连接方式有所差异:

1. Windows主机连接

推荐使用MobaXterm(图形化工具,操作简单)或PuTTY(命令行工具):

  • MobaXterm
    1. 打开MobaXterm,点击左上角Session
    2. 选择SSH,在Remote host输入框填写虚拟机IP地址(如192.168.1.100);
    3. 点击OK,在弹出的登录窗口输入Ubuntu用户名和密码,即可远程操作。
  • PuTTY
    1. 下载并安装PuTTY(官网:https://www.putty.org/);
    2. 打开PuTTY,在Host Name (or IP address)输入虚拟机IP,Port保持22(默认);
    3. 点击Open,首次连接会提示“是否信任该主机”,点击Yes
    4. 输入用户名和密码登录。

2. Linux/macOS主机连接

直接使用系统自带的终端,执行以下命令:

ssh 用户名@虚拟机IP地址

例如,若虚拟机用户名为ubuntu,IP为192.168.1.100,则输入:

ssh ubuntu@192.168.1.100

首次连接时,系统会提示“是否继续连接”,输入yes,然后输入密码即可登录。

五、可选:配置SSH密钥认证(提升安全性)

密码认证存在被暴力破解的风险,建议使用密钥认证(免密登录)。

1. 在主机生成密钥对

打开终端(Linux/macOS自带,Windows可用Git Bash),执行:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示操作(直接按回车使用默认路径,无需设置密码),生成id_rsa(私钥,需保密)和id_rsa.pub(公钥,需上传到虚拟机)。

2. 将公钥复制到虚拟机

使用ssh-copy-id命令自动复制公钥:

ssh-copy-id 用户名@虚拟机IP地址

例如:

ssh-copy-id ubuntu@192.168.1.100

输入虚拟机密码后,公钥会自动添加到虚拟机的~/.ssh/authorized_keys文件中。

3. 使用密钥登录

现在可以直接用私钥登录,无需输入密码:

ssh -i ~/.ssh/id_rsa 用户名@虚拟机IP地址

例如:

ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.100

若私钥不在默认路径,需通过-i参数指定路径。

六、常见问题及解决方法

1. 连接失败,提示“Connection refused”

  • 检查SSH服务是否启动:sudo systemctl status ssh(若未启动,执行sudo systemctl start ssh);
  • 确认虚拟机防火墙是否允许SSH:sudo ufw allow ssh(Ubuntu默认使用UFW防火墙)。

2. 忘记虚拟机IP地址

  • 在虚拟机中重新执行ip addr showhostname -I
  • 若虚拟机有图形界面,可通过网络设置查看IP。

3. 虚拟机重启后无法连接

  • 检查SSH是否设置开机自启:sudo systemctl is-enabled ssh(若显示disabled,执行sudo systemctl enable ssh)。

4. 密钥认证失败

  • 确保虚拟机的~/.ssh目录权限为700chmod 700 ~/.ssh);
  • 确保authorized_keys文件权限为600chmod 600 ~/.ssh/authorized_keys)。

通过以上步骤,你即可轻松使用SSH登录Ubuntu虚拟机,实现远程管理和操作。密钥认证可大幅提升安全性,建议优先配置。

0