必须先确保Windows服务器SSH服务已安装并启动,防火墙放行TCP 22端口;再通过ssh username@IP连接,或用VS Code Remote-SSH扩展配置主机别名实现一键连接。

确认Windows服务器已开启SSH服务
必须先让目标Windows机器能被远程SSH连接,否则所有客户端操作都是徒劳——它根本不会响应任何ssh请求。
以管理员身份打开PowerShell,执行:Get-Service sshd。若返回“服务不存在”或状态为Stopped,说明OpenSSH Server未安装或未启动。
执行命令安装服务(仅首次需要):Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0。
安装完成后立即启动并设为开机自启:Start-Service sshd → Set-Service -Name sshd -StartupType Automatic。
【防火墙必须放行TCP 22端口】,否则即使服务运行,外部连接也会被静默拦截。运行:New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22。
从另一台Windows主机发起SSH连接
连接前确保已知目标Windows服务器的本地用户名(如Administrator或你创建的普通账户)、IP地址(如192.168.1.50),且该用户密码已设置(密钥登录需额外配置)。
打开CMD、PowerShell或Windows Terminal,在任意标签页中输入:ssh username@192.168.1.50,将username和IP替换为实际值。
首次连接会弹出主机密钥确认提示,输入yes并回车;随后输入该用户的Windows登录密码(注意:不是Microsoft账户密码,是本地账户密码)。
成功登录后,终端将显示类似username@WIN-XXXXXX:的提示符,此时已进入远程Windows系统的PowerShell环境,可执行dir、ipconfig等命令。
使用VS Code通过Remote-SSH扩展连接
这是开发场景下的高效方式:无需记忆命令,支持图形化文件浏览、集成终端、调试器直连。
方法一:快速直连
在VS Code中按Ctrl+Shift+P,输入Remote-SSH: Connect to Host → 选择Add New SSH Host... → 输入ssh username@192.168.1.50 → 回车后自动创建配置并触发连接流程。
方法二:配置别名复用(推荐)
打开本地%USERPROFILE%\.ssh\config文件(无则新建),添加如下内容:
Host WinServer-Dev<br> HostName 192.168.1.50<br> User administrator<br> Port 22
保存后,在VS Code命令面板再次执行Remote-SSH: Connect to Host,即可从下拉列表中直接选择WinServer-Dev一键连接。
连接时若提示“Permission denied (publickey)”,说明服务器已禁用密码登录——此时必须提前配置好公钥认证,或临时改回密码登录模式(修改C:\ProgramData\ssh\sshd_config中PasswordAuthentication yes并重启sshd服务)。
验证连接并执行基础交互
连接成功后,在远程Windows终端中执行:hostname,确认输出的是目标服务器的计算机名而非本地机名。
运行:whoami,检查当前登录用户是否为你指定的账户,且SID包含DOMAIN\或.\前缀(表示本地账户)。
尝试执行Windows原生命令:Get-Process -Name code | Select-Object Id, CPU(PowerShell语法),验证PowerShell引擎正常工作。
退出连接只需输入exit或关闭终端窗口。


















