耕码记

Windows系统SSH命令报错解决方案:安装、配置与环境变量设置

Windows系统SSH命令报错解决方案:安装、配置与环境变量设置

在Windows系统中使用SSH命令时,用户可能会遇到'ssh' 不是内部或外部命令的报错,这通常是由于系统未安装或未正确配置OpenSSH客户端导致的。本文将详细介绍如何解决这一问题。

今天在使用VSCODE remote-ssh插件连接服务器的时候报错:

[20:11:57.288] Got error from ssh: spawn C:\Windows\System32\OpenSSH\ssh.exe ENOENT ... [20:11:57.295] Finding installed ssh failed: ssh installation not found ... [SshInstall]: Error: SshInstall (ssh installation not found)

这个报错的意思是 ‌**VSCode 的 Remote-SSH 插件在系统里找不到 ssh.exe**‌,不是服务器连不上,是本地环境问题。‌‌

🛠️ 解决步骤

  1. 先确认 SSH 客户端是否已安装
    • 打开 PowerShell 或 CMD,输入 ssh -V 回车。
    • 如果返回版本信息(如 OpenSSH_for_Windows_8.6p1),说明已安装,问题出在 VSCode 没找到路径。
    • 如果提示“不是内部或外部命令”,说明系统确实没装 OpenSSH,往下看安装方法。‌‌

安装OpenSSH客户端

通过设置安装

  1. 打开“设置”应用,进入“应用” > “可选功能”。
  2. 点击“添加功能”,搜索“OpenSSH客户端”。
  3. 勾选后点击“安装”,等待安装完成。

通过PowerShell安装

用管理员权限打开 PowerShell,执行:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

安装完成后,可通过以下命令验证安装状态:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'

配置环境变量

若已安装OpenSSH但仍报错,可能是环境变量未生效。

  1. 确认OpenSSH安装路径(通常为C:\Windows\System32\OpenSSH)。
  2. 将该路径添加到系统环境变量Path中:
    • 右键“此电脑” > “属性” > “高级系统设置” > “环境变量”。
    • 在“系统变量”中找到Path,编辑并添加OpenSSH路径。
  3. 重启终端,输入ssh -V验证是否生效。

安装OpenSSH服务器(可选)

若需将Windows作为SSH服务器,需额外安装OpenSSH服务器组件。

通过设置安装

  1. 打开“设置”应用,进入“应用” > “可选功能”。
  2. 点击“添加功能”,搜索“OpenSSH服务器”。
  3. 勾选后点击“安装”,等待安装完成。

通过PowerShell安装

用管理员权限打开 PowerShell,执行:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

安装完成后,需配置防火墙规则以允许TCP 22端口:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

验证SSH功能

安装成功后,在终端输入以下命令测试:

bash复制ssh -V  # 查看版本
ssh username@remote_ip  # 测试连接远程服务器

若显示版本信息或成功连接,则问题解决。