摘要
SSH (Secure Shell) 是一种网络协议,允许您通过加密的连接安全地远程登录和管理 ESXi 主机,默认情况下,ESXi 的 SSH 服务是禁用的,出于安全考虑,建议仅在需要时才启用它。

第一部分:启用 ESXi SSH 服务
在您可以通过 SSH 连接之前,必须在 ESXi 主机上启用该服务。
使用 vSphere Client (HTML5 或 C# 客户端)
这是最推荐、最安全的方法。
- 登录 vCenter Server 或直接登录 ESXi 主机。
- 导航到主机:在左侧导航栏中,找到并点击您的 ESXi 主机。
- 配置服务:
- HTML5 Client: 点击 "管理" (Manage) 标签页,然后选择 "系统" (System) 下的 "服务" (Services)。
- C# Client: 右键点击主机,选择 "服务" (Services)。
- 找到并启用 SSH:
- 在服务列表中,找到名为
TSM-SSH的服务。 - 右键点击
TSM-SSH,选择 "启动" (Start) 或 "启动并添加到启动" (Start and Start At Power On)。
- 在服务列表中,找到名为
- (可选)禁用 Shell:为了增强安全性,您可以禁用交互式 Shell,找到
TSM-SSH服务,点击右侧的 "设置" (Actions) -> "设置" (Settings),在 "启动选项" 中,将 "交互式 Shell" 设置为 "禁用"。
第二部分:如何连接到 ESXi 主机
启用 SSH 服务后,您可以使用任何 SSH 客户端工具进行连接。
基本连接命令
ssh root@<ESXi主机IP或DNS名称>
示例:

ssh root@192.168.1.100
首次连接提示
如果是第一次连接到此 ESXi 主机,您可能会看到以下安全警告:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入 yes 并按回车。
输入密码
连接后,系统会提示您输入 root 用户的密码,输入密码时,屏幕上不会有任何显示(光标也不会移动),这是正常的安全特性,输入完毕后直接按回车。
第三部分:ESXi 常用 SSH 命令
连接成功后,您将看到一个命令提示符,通常是 esxi-host:~ #,以下是一些最常用的命令。

系统信息
| 命令 | 描述 | 示例 |
|---|---|---|
uname -a |
显示所有系统信息,包括内核版本、主机名等。 | Linux esxi-host 6.5.0-0.0.45.16850503 #1 SMP ESX Build 16850503 Jan 18 2025 15:42:00 VMware x86_64 x86_64 x86_64 GNU/Linux |
hostname |
显示当前主机的完整名称。 | esxi-host.mydomain.local |
vmware -v |
显示 ESXi 产品版本和构建号。 | VMware ESXi 6.5.0 build-16850503 |
esxcli hardware platform get |
显示硬件平台信息,如 BIOS UUID、序列号等。 | 可以用来获取主机的唯一标识符。 |
存储管理
| 命令 | 描述 | 示例 |
|---|---|---|
ls /vmfs/volumes |
列出所有数据存储及其挂载点。 | ls /vmfs/volumes |
cd /vmfs/volumes/数据存储名称 |
进入指定数据存储的目录。 | cd /vmfs/volumes/DS datastore 1 |
ls |
列出数据存储中的文件和文件夹(如虚拟机文件、ISO 镜像等)。 | ls |
mkdir |
在数据存储上创建新文件夹。 | mkdir new_vm_folder |
rm |
删除文件。(危险操作,请谨慎!) | rm unused_file.vmdk |
网络管理
| 命令 | 描述 | 示例 |
|---|---|---|
esxcli network ip interface list |
列出所有虚拟网络接口(如 vmk0, vmk1 等)及其状态。 | esxcli network ip interface list |
esxcli network ip interface ipv4 get -i vmk0 |
获取指定网络接口的 IPv4 地址信息。 | esxcli network ip interface ipv4 get -i vmk0 |
esxcli network nic list |
列出所有物理网卡(vNICs)及其状态。 | esxcli network nic list |
esxcli network firewall ruleset list |
列出所有防火墙规则集及其状态。 | esxcli network firewall ruleset list |
虚拟机管理
| 命令 | 描述 | 示例 |
|---|---|---|
vim-cmd vmsvc/getallvms |
(最常用) 列出所有注册在 ESXi 主机上的虚拟机。 | vim-cmd vmsvc/getallvms |
vim-cmd vmsvc/power.getstate <VM_ID> |
获取指定虚拟机的电源状态。 | vim-cmd vmsvc/power.getstate 3 (VM_ID 为 3) |
vim-cmd vmsvc/power.on <VM_ID> |
开机指定虚拟机。 | vim-cmd vmsvc/power.on 3 |
vim-cmd vmsvc/power.off <VM_ID> |
关机指定虚拟机(发送关机信号)。 | vim-cmd vmsvc/power.off 3 |
vim-cmd vmsvc/power.reset <VM_ID> |
强制重启指定虚拟机(相当于按电源键)。 | vim-cmd vmsvc/power.reset 3 |
vim-cmd vmsvc/snapshot.get <VM_ID> |
列出指定虚拟机的所有快照。 | vim-cmd vmsvc/snapshot.get 3 |
日志和诊断
| 命令 | 描述 | 示例 |
|---|---|---|
tail -f /var/log/messages |
实时查看系统消息日志。 | tail -f /var/log/messages |
tail -f /var/log/hostd.log |
实时查看 ESXi 主机服务日志。 | tail -f /var/log/hostd.log |
less /var/log/vmkernel.log |
分页查看内核日志,按 q 退出。 |
less /var/log/vmkernel.log |
esxcli hardware platform get |
查看硬件平台信息。 | esxcli hardware platform get |
文件传输
| 命令/工具 | 描述 |
|---|---|
scp (Secure Copy) |
通过 SSH 安全地在本地和远程主机之间复制文件。 |
| 示例: | |
scp /path/to/local/file.txt root@192.168.1.100:/vmfs/volumes/datastore1/ |
将本地文件上传到 ESXi。 |
scp root@192.168.1.100:/vmfs/volumes/datastore1/file.txt /path/to/local/ |
从 ESXi 下载文件到本地。 |
sftp |
基于 SSH 的交互式文件传输协议,像一个安全的 FTP。 |
| 示例: | |
sftp root@192.168.1.100 |
连接后,可以使用 get, put, ls, cd 等命令。 |
第四部分:安全最佳实践
- 禁用 SSH:完成管理任务后,立即通过 vSphere Client 将
TSM-SSH服务状态设置为 "停止" 和 "禁用"。 - 使用更安全的替代方案:对于日常管理,优先使用 vSphere Client 或 ESXi Shell (通过 vSphere Client 的 "控制台" 选项卡访问),ESXi Shell 是一个受控的、功能有限的命令行环境,比完全开放的 SSH 更安全。
- 使用密钥认证:为了提高安全性,配置 SSH 使用基于密钥的认证,而不是密码,这可以防止暴力破解攻击。
- 限制用户访问:确保只有授权的
root用户或具有相应权限的管理员才能通过 SSH 访问。 - 审计日志:定期检查 ESXi 主机的系统日志 (
/var/log/messages),监控 SSH 登录活动。
| 任务 | 命令/方法 |
|---|---|
| 启用 SSH | vSphere Client -> 主机 -> 服务 -> TSM-SSH -> 启动 |
| 连接主机 | ssh root@<IP> |
| 列出所有 VM | vim-cmd vmsvc/getallvms |
| 开关机 VM | vim-cmd vmsvc/power.on/off <VM_ID> |
| 查看存储 | ls /vmfs/volumes |
| 传输文件 | scp 或 sftp |
| 查看日志 | tail -f /var/log/... |
| 禁用 SSH | vSphere Client -> 主机 -> 服务 -> TSM-SSH -> 停止并禁用 |
通过掌握这些命令,您将能够更高效、更灵活地管理和排障您的 ESXi 主机。
