菜鸟科技网

VMware SSH命令如何使用?

SSH 是一种网络协议,它本身不是 VMware 的特定命令。 你通过 SSH 连接的是 VMware 虚拟机(Guest OS)的操作系统,而不是 VMware ESXi 主机(Host)本身(除非你明确配置了 ESXi 的 SSH 服务)。

VMware SSH命令如何使用?-图1
(图片来源网络,侵删)

整个过程分为两步:

  1. 在 VMware 环境中配置:确保虚拟机可以接收 SSH 连接。
  2. 在你的本地计算机上使用 SSH 命令:通过命令行连接到虚拟机。

第一步:在 VMware 环境中配置 SSH 访问

你需要确保虚拟机已经安装并启用了 SSH 服务。

连接到客户机操作系统 (Guest OS)

这是最常见的用法,比如连接到 Ubuntu、CentOS、Windows 等。

对于 Linux 虚拟机 (如 Ubuntu, CentOS):

VMware SSH命令如何使用?-图2
(图片来源网络,侵删)
  1. 安装 SSH 服务器: 如果你的 Linux 系统没有安装 SSH 服务器,需要先安装。

    • Ubuntu/Debian:
      sudo apt update
      sudo apt install openssh-server
    • CentOS/RHEL/Fedora:
      sudo yum install openssh-server
      # 或者使用 dnf (新版)
      sudo dnf install openssh-server
  2. 启动并启用 SSH 服务

    # 启动 SSH 服务
    sudo systemctl start sshd
    # 设置 SSH 服务开机自启
    sudo systemctl enable sshd
  3. 检查防火墙: Linux 防火墙可能会阻止 SSH 连接(默认端口 22),你需要允许流量通过。

    • 使用 UFW (Ubuntu/Debian):
      sudo ufw allow ssh
      sudo ufw reload
    • 使用 firewalld (CentOS/RHEL):
      sudo firewall-cmd --permanent --add-service=ssh
      sudo firewall-cmd --reload
  4. 获取虚拟机的 IP 地址: 你需要知道虚拟机的 IP 地址才能连接,可以在虚拟机内部使用以下命令查看:

    VMware SSH命令如何使用?-图3
    (图片来源网络,侵删)
    ip a
    # 或者
    ifconfig

    记下 enp0s3 (或类似名称) 网卡下的 inet 地址,168.1.105

对于 Windows 虚拟机 (如 Windows 10/11, Windows Server):

  1. 启用 OpenSSH 服务器

    • 进入 设置 -> 应用 -> 可选功能
    • 点击 添加功能,搜索并安装 OpenSSH 服务器
    • 安装完成后,可以在服务中找到 sshd 服务,并确保其正在运行。
  2. 配置防火墙: Windows Defender 防火墙通常会自动为 OpenSSH 创建入站规则,如果没有,请手动添加一个允许 TCP 端口 22 的入站规则。

  3. 获取虚拟机的 IP 地址: 在 Windows 命令提示符或 PowerShell 中运行:

    ipconfig

    记下 IPv4 地址,168.1.106


连接到 ESXi 主机 (Host)

如果你需要直接管理 ESXi 主机,可以启用其 SSH 服务。

  1. 通过 vSphere Client (Web Client) 启用

    • 登录到 vSphere Client。
    • 在左侧导航栏中,右键点击你的 ESXi 主机,选择 服务
    • 在服务列表中找到 SSH
    • 右键点击 SSH,选择 启动并添加到启动列表
    • ⚠️ 安全警告:出于安全考虑,建议仅在需要时临时启用,用完后立即禁用,长时间开启 SSH 会使 ESXi 主机暴露在网络风险中。
  2. 获取 ESXi 主机的 IP 地址

    • 在 vSphere Client 中,点击主机名称,在 摘要 页面可以找到其 IP 地址。

第二步:使用 SSH 命令进行连接

现在你可以在你的本地计算机(Windows, macOS, Linux)上使用 SSH 命令了。

基本语法

ssh [用户名]@[虚拟机IP地址]
  • [用户名]:虚拟机操作系统上的用户名。
    • Linux 通常是 root 或你创建的普通用户(如 ubuntu, centos)。
    • Windows 默认是 Administrator
  • [虚拟机IP地址]:你在第一步中获取的 IP 地址。

常用 SSH 命令示例

基本连接

# 连接到 IP 为 192.168.1.105 的 Ubuntu 虚拟机,用户名为 ubuntu
ssh ubuntu@192.168.1.105

指定端口

如果虚拟机的 SSH 服务运行在非标准端口(2222),需要使用 -p 选项。

ssh -p 2222 ubuntu@192.168.1.105

使用密钥进行无密码登录(推荐)

每次输入密码很麻烦,可以通过 SSH 密钥对实现免密登录。

  • 在本地电脑生成密钥对(如果还没有的话):

    ssh-keygen -t rsa -b 4096
    # 一路回车即可,会在 ~/.ssh/ 目录下生成 id_rsa (私钥) 和 id_rsa.pub (公钥)
  • 将公钥复制到远程虚拟机

    # 使用 ssh-copy-id 工具(最简单)
    ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@192.168.1.105
    # 如果没有 ssh-copy-id,可以手动复制
    # 1. 在本地查看公钥内容
    cat ~/.ssh/id_rsa.pub
    # 2. 将输出的内容,追加到虚拟机 ~/.ssh/authorized_keys 文件的末尾
  • 之后连接时就不需要密码了

    ssh ubuntu@192.168.1.105

指定私钥文件

如果你的密钥文件不在默认位置 ~/.ssh/id_rsa,可以使用 -i 选项指定。

ssh -i /path/to/your/private_key.pem ubuntu@192.168.1.105

在一条命令中执行远程命令

有时候你只是想在远程机器上执行一个命令,然后退出,可以在 SSH 命令后直接跟命令。

# 在远程机器上获取磁盘使用情况
ssh ubuntu@192.168.1.105 "df -h"
# 在远程机器上创建一个目录
ssh ubuntu@192.168.1.105 "mkdir -p /tmp/mytest"

调试连接问题

如果连接失败,可以使用 -v (verbose) 选项来查看详细的连接过程,帮助定位问题。

ssh -v ubuntu@192.168.1.105

通过 SSH 隧道转发端口

这是一个高级用法,比如你想通过 SSH 访问虚拟机上的一个 Web 服务(端口 8080)。

# 将本地电脑的 8888 端口映射到虚拟机的 8080 端口
ssh -L 8888:localhost:8080 ubuntu@192.168.1.105

然后你就可以在本地浏览器中访问 http://localhost:8888 来查看虚拟机上运行的服务。


常见问题排查

  1. Connection timed out / Connection refused

    • 原因:虚拟机无法通过网络访问。
    • 解决
      • 检查虚拟机的 IP 地址是否正确。
      • 检查 VMware 的网络设置(NAT、桥接等),确保虚拟机可以和你的主机通信。
      • 检查虚拟机操作系统的防火墙是否阻止了 SSH 端口(22)。
  2. Permission denied (publickey,password).

    • 原因:认证失败。
    • 解决
      • 确认用户名和密码是否正确。
      • 如果使用密钥,确认公钥是否已正确添加到远程机器的 ~/.ssh/authorized_keys 文件中。
      • 检查远程机器的 SSH 服务器配置文件 (/etc/ssh/sshd_config),确保 PasswordAuthentication yes(如果你用密码登录)或 PubkeyAuthentication yes(如果你用密钥登录)。
  3. Could not resolve hostname

    • 原因:你的本地电脑无法通过域名或 IP 地址找到虚拟机。
    • 解决
      • 确认 IP 地址输入无误。
      • 确认虚拟机和你的主机在同一个局域网内(如果是桥接模式),或者 VMware 的 NAT/DHCP 服务是否正常工作。
步骤 操作 命令/工具 说明
配置虚拟机 安装并启动 SSH 服务 sudo apt install openssh-server (Linux) 或 "设置" (Windows) 确保虚拟机本身能提供 SSH 服务。
检查网络 获取虚拟机 IP 地址 ip a (Linux) / ipconfig (Windows) 找到虚拟机的网络身份,用于连接。
检查防火墙 允许 SSH 流量 sudo ufw allow ssh (Linux) 或 Windows Defender 防火墙 确保网络流量能到达 SSH 服务。
连接 使用 SSH 命令连接 ssh [user]@[ip] 核心命令,用于建立安全连接。
进阶 使用密钥/执行命令 ssh-copy-id, ssh -i keyfile, ssh "command" 提高效率和自动化操作。

希望这份详细的指南能帮助你顺利使用 SSH 连接到你的 VMware 虚拟机!

分享:
扫描分享到社交APP
上一篇
下一篇