Agent Skills
返回列表
Windows OpenSSH 服务开通与修复

Windows OpenSSH 服务开通与修复

IT 运维与安全 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_dde237c9/sshd-setup。

技能介绍

你在 Windows 上碰到的典型问题

远程连不上本机、WSL 或 CI 需要走 SSH,但 OpenSSH Server 要么没装、要么服务没起来,或者 capability 显示已安装却找不到 sshd.exe。管理员还要单独处理 22 端口防火墙 和 密钥文件路径,否则公钥写在用户目录 .ssh/authorized_keys 里也不会生效。

技能如何执行

语义触发后走一条 CHECK → INSTALL → FIREWALL → START → [KEY] → VERIFY 的 PowerShell 流程:

  • CHECK:确认 sshd 服务与 sshd.exe 是否存在
  • INSTALL:优先 Add-WindowsCapability 安装 OpenSSH.Server;若系统能力包状态与实际文件不一致,则从 GitHub 拉取 OpenSSH-Win64.zip 并执行 install-sshd.ps1
  • FIREWALL:创建或复用入站规则 OpenSSH-In(TCP 22)
  • START:Set-Service 设为自动启动并 Start-Service sshd
  • 可选 KEY:检测密钥登录是否已可用;否则生成 ed25519 密钥对,写入 C:\ProgramData\ssh\administrators_authorized_keys 并用 icacls 收紧权限后重启服务,用 localhost 验证
  • VERIFY:Get-NetTCPConnection -LocalPort 22 确认监听

整条链路 幂等:已安装、已运行、密钥已生效的步骤会跳过,适合反复排查。

边界与注意

  • 必须以 管理员 运行(脚本带 #Requires -RunAsAdministrator)
  • 密钥免密针对 当前管理员账户;管理员组公钥位置与 Linux 不同,不能只看用户目录
  • 若无法加载 .ps1,需先调整 PowerShell 执行策略(如 RemoteSigned)
  • PowerShell 下 ssh-keygen -N "" 有参数解析问题,技能内通过 cmd /c 规避

使用场景

  • 远程连公司 Windows 工作站时 22 端口不通,需要在本机检查 sshd 是否安装、是否在监听并启动服务。
  • 新装的 Windows Server 要供 Ansible 或脚本通过 SSH 登录,需安装 OpenSSH Server、防火墙放行 22 并设自动启动。
  • 可选功能里 OpenSSH 显示已安装,但系统里没有 sshd.exe,需要走 GitHub 离线包重新安装。
  • 管理员账户要用公钥免密登录 Windows OpenSSH,需把密钥写到 ProgramData 并修正 icacls 权限后重启 sshd。

适合人员

  • 维护 Windows 服务器、需要通过 SSH 远程执行命令与排障的企业运维工程师
  • 在 Windows 开发主机上开通 OpenSSH、供笔记本或 WSL 密钥登录本地的后端或全栈开发者
  • 做桌面或服务器基线加固、要统一检查防火墙 22 端口与 sshd 自启状态的 IT 实施与安全人员
  • 接手他人配置的 Windows 机器、不熟悉管理员组 Match 规则与 authorized_keys 路径的系统管理员