【临时】Windows 新电脑开通 OpenSSH 操作单

文章目录

Windows 新电脑:开通 OpenSSH 远程登录(图文步骤)

这份页面是临时的操作单。照着从上往下做,一般 3–5 分钟能跑通。

做完全部步骤后,你只需要把 两样东西 发出来:
① 最后一屏打印出来的 IP 地址
② 你的 Windows 用户名(whoami 反斜杠后面那半截)

密码不用发。SSH 用的密码就是你这台电脑的开机密码,你自己知道,任何一步都在本机输入即可,全程不需要离开这台电脑。


第 0 步:以「管理员身份」打开 PowerShell

这一步必须是管理员,否则会失败。

  1. 按 Win 键(或点开始菜单)
  2. 直接打字:PowerShell
  3. 在「Windows PowerShell」上点右键 → 以管理员身份运行
  4. 弹出「是否允许此应用对你的设备进行更改?」→ 点是

窗口标题栏应该能看到 管理员 字样。


第 1 步:复制下面整段,粘贴进去回车

在 PowerShell 窗口里点右键就是粘贴(不用按 Ctrl+V),然后按回车。

Set-Service -Name ssh-agent -StartupType Automatic -ErrorAction SilentlyContinue
Start-Service ssh-agent -ErrorAction SilentlyContinue
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Set-Service -Name sshd -StartupType Automatic
Start-Service sshd
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -ErrorAction SilentlyContinue
Set-ItemProperty -Path 'HKLM:SOFTWAREOpenSSH' -Name DefaultShell -Value 'C:WindowsSystem32WindowsPowerShellv1.0powershell.exe' -Force
Write-Host "`n=== 完成,下面核对 ===" -ForegroundColor Green
Get-Service sshd | Format-List Name,Status,StartType
Get-NetFirewallRule -Name sshd | Format-List DisplayName,Enabled,Action
Write-Host "你的用户名(反斜杠后面那半截就是要发出去的):" -ForegroundColor Yellow
whoami
Write-Host "你的 IP 地址(这个也要发出去):" -ForegroundColor Yellow
(Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.IPAddress -notlike '127.*' -and $_.IPAddress -notlike '169.254.*'}).IPAddress

正常情况下的表现:

  • 第 3 行(Add-WindowsCapability)可能要等 1–3 分钟,看着像卡住是正常的,千万别关窗口、别按 Ctrl+C。
  • 最后会打印出 Status: Running,以及一两行 IP(例如 192.168.1.23)。

第 2 步:自己验一下通不通

再开一个新窗口(不要关掉刚才那个):开始菜单搜 PowerShell,这次直接点左键打开就行,不用管理员。把下面这行粘进去回车:

ssh 127.0.0.1 whoami

它会问你 Are you sure you want to continue connecting (yes/no)? → 输入 yes 回车。
然后提示 password: → 输入你这台电脑的开机密码(打字时屏幕上不显示任何字符,这是正常的),回车。

✅ 成功的样子:屏幕上回显你的用户名,例如 desktop-abc123micha。
这时就可以把 IP 和用户名发出去了。

❌ 如果没成功,对照下面:

看到的报错原因 / 怎么修
Connection refused服务没起来。回到管理员窗口跑:Start-Service sshd,再试一次。
Permission denied多半是微软账号登录导致的(见下方第 3 步说明)。
ssh 不是内部或外部命令第 1 步没装成功,重跑第 1 步。
Add-WindowsCapability 报 0x800f0954公司/组策略限制了联网装功能。改用这条装,再重跑第 1 步其余各行:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 -Source "C:WindowsWinSxS"

第 3 步:如果报 Permission denied(微软账号用户必看)

如果你的 Windows 是用微软账号(邮箱)登录的,密码 SSH 会被系统拒绝,这不是你操作错了。

在管理员 PowerShell 里跑这条,看结果:

Get-LocalUser -Name $env:USERNAME | Format-List Name,PrincipalSource
  • PrincipalSource : Local → 没问题,直接往下走。
  • PrincipalSource : MicrosoftAccount → 需要额外开一下密码登录,把这一行结果告诉我就行,我给一条命令补上。

第 4 步:把这 3 行结果发出来

回到管理员那个窗口,把下面这条粘进去回车:

Write-Host "IP:"; (Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.IPAddress -notlike '127.*' -and $_.IPAddress -notlike '169.254.*'}).IPAddress; Write-Host "USER:"; whoami; Write-Host "SRC:"; Get-LocalUser -Name $env:USERNAME | Select-Object -ExpandProperty PrincipalSource

把打印出来的三行(IP / USER / SRC)发出来,我就能接着远程给它配 DSH 了。


常见问题

Q:这些命令安全吗?
A:全部是 Windows 系统自带的官方功能,没有下载任何第三方软件(所以也不受网络环境影响)。做的事只有:装微软官方的 OpenSSH 服务端、开机自启、放行 22 端口。

Q:为什么密码不用发?
A:SSH 密码就是这台电脑的开机密码,本来就只有你知道。把它发出去等于把电脑钥匙交出去,没必要——你只要在那台电脑上自己输入就行。

Q:电脑重启后还有效吗?
A:有。第 1 步里 Set-Service -StartupType Automatic 已经设成开机自启了。

Q:弄坏了怎么办?
A:不会坏。最差情况是服务没起来,跑 Start-Service sshd 即可。想彻底撤销的话告诉我,我给卸载命令。

管理员

于灯火阑珊处,于暗香离别时,未曾放弃

相关推荐

尚惠平-331715266@qq.com

448 / Reality 新节点配置说明 请优先使用本页二维码或完整分享链接重新导入客户端,不要只在旧节点里手动修改端口号。 不同 ...

丁兆伟-84988700@qq.com

448 / Reality 新节点配置说明 请优先使用本页二维码或完整分享链接重新导入客户端,不要只在旧节点里手动修改端口号。 不同 ...