C:\Windows\System32\OpenSSH\sshd.exe -t __PROGRAMDATA__\\ssh/sshd_config line 89: unsupported option "yesAuthorizedKeysFile". notepad C:\ProgramData\ssh\sshd_config 找到这段: Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys 改成: Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys PasswordAuthentication yes PS C:\Users\Administrator> Restart-Service sshd Restart-Service : 无法启动服务“OpenSSH SSH Server (sshd)”。 所在位置 行:1 字符: 1 + Restart-Service sshd + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Restart-Service] , ServiceCommandException + FullyQualifiedErrorId : StartServiceFailed,Microsoft.PowerShell.Commands.RestartServiceCommandPS C:\Users\Administrator> Restart-Service sshd Restart-Service : 无法启动服务“OpenSSH SSH Server (sshd)”。 所在位置 行:1 字符: 1 + Restart-Service sshd + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Restart-Service] , ServiceCommandException + FullyQualifiedErrorId : StartServiceFailed,Microsoft.PowerShell.Commands.RestartServiceCommand 方法一:启动 Windows Update 再装 # 先开 Windows Update 服务 Set-Service wuauserv -StartupType Manual Start-Service wuauserv # 再重试安装 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 方法二:设置界面手动装(绕过命令行) Win+I → 系统 → 可选功能 → 添加功能 → 搜 OpenSSH 服务器 → 安装 哪个方便用哪个。 一、以管理员身份打开 PowerShell(3 选 1) * 最常用:按 Win + X → 选 "终端(管理员)" 或 "Windows PowerShell(管理员)" * 开始菜单搜 PowerShell → 右键 → "以管理员身份运行" * 任务栏搜索框输入 powershell → 右键 → 以管理员身份运行 打开后,窗口标题栏带"管理员"字样,就说明权限对了(UAC 弹窗也点"是")。 二、在管理员 PowerShell 里直接跑这段(复制粘贴即可) powershell # 1) 放行 ping(ICMPv4 回显请求) New-NetFirewallRule -DisplayName "Allow-ICMPv4-In" -Protocol ICMPv4 -IcmpType 8 -Direction Inbound -Action Allow # 2) 安装 OpenSSH 服务端(Win10 1809+/Win11/Server 2019+ 自带) Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # 3) 启动服务并设为开机自启 Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' # 4) 放行 22 端口 New-NetFirewallRule -DisplayName "OpenSSH-Server-In-TCP" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow # 5) 验证 Get-Service sshd 跑完第 5 步应显示 Status : Running。之后: * 从别的机器 ping 192.168.3.156 应能通(验证第一步) * ssh administrator@192.168.3.156 应能连(验证 SSH) 三、两个可选配置 让 SSH 登录后默认进 PowerShell(而不是 cmd): New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force 在 59.186 这台机器上先确认密码——打开 cmd 跑: net user Administrator **** notepad C:\ProgramData\ssh\sshd_config 找到这行,确保没有被注释: PasswordAuthentication yes 确认 Administrator 账户没有被锁定 net user Administrator | findstr /i "active\|lock" 应该显示 Account active: Yes。 net user Administrator 有没有 "Account active" 和 "User may change password" 这两行 看看 sshd_config 里密码认证开了没: type C:\ProgramData\ssh\sshd_config | findstr PasswordAuthentication 如果没有这行或前面有 #,加上去,然后重启 SSH: Restart-Service sshd PS C:\Users\Administrator> net user Administrator 用户名 Administrator 全名 注释 管理计算机(域)的内置帐户 用户的注释 国家/地区代码 000 (系统默认值) 帐户启用 Yes 帐户到期 从不 上次设置密码 2026/7/23 16:11:15 密码到期 从不 密码可更改 2026/7/23 16:11:15 需要密码 Yes 用户可以更改密码 Yes 允许的工作站 All 登录脚本 用户配置文件 主目录 上次登录 2026/7/24 8:49:13 可允许的登录小时数 All 本地组成员 *Administrators 全局组成员 *None 命令成功完成。PS C:\Users\Administrator> net user Administrator 用户名 Administrator 全名 注释 管理计算机(域)的内置帐户 用户的注释 国家/地区代码 000 (系统默认值) 帐户启用 Yes 帐户到期 从不 上次设置密码 2026/7/23 16:11:15 密码到期 从不 密码可更改 2026/7/23 16:11:15 需要密码 Yes 用户可以更改密码 Yes 允许的工作站 All 登录脚本 用户配置文件 主目录 上次登录 2026/7/24 8:49:13 可允许的登录小时数 All 本地组成员 *Administrators 全局组成员 *None 命令成功完成。 PS C:\Users\Administrator> type C:\ProgramData\ssh\sshd_config | findstr PasswordAuthentication PasswordAuthentication yes # 1. 有没有限制哪些用户能 SSH type C:\ProgramData\ssh\sshd_config | findstr -i "AllowUsers\|DenyUsers\|AllowGroups\|DenyGroups\|Match" # 2. SSH 服务真在运行吗 Get-Service sshd type C:\ProgramData\ssh\sshd_config | Select-String -Context 0,5 "Match Group administrators" > Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys PS C:\Users\Administrator> Get-Service sshd Status Name DisplayName ------ ---- ----------- Running sshd OpenSSH SSH Server