Windows 开启 OpenSSH 服务

后知后觉 现有 3 评论

为了方便与 Linux 传输文件,启用 Windows 的 OpenSSH 服务。

安装

使用 Windows 设置来安装 OpenSSH

可以使用 Windows Server 2019 和 Windows 10 或 Windows 11 设备上的 Windows 设置安装这两个 OpenSSH 组件。

若要安装 OpenSSH 组件:

  1. 打开“设置”,选择“应用”>“应用和功能”,然后选择“可选功能” 。
  2. 扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后:

设置完成后,回到“应用”>“应用和功能”和“可选功能”,你应会看到已列出 OpenSSH 。

安装 OpenSSH 服务器将创建并启用一个名为 OpenSSH-Server-In-TCP 的防火墙规则。 这允许端口 22 上的入站 SSH 流量。 如果未启用此规则且未打开此端口,那么连接将被拒绝或重置。

使用 PowerShell 安装 OpenSSH

若要使用 PowerShell 安装 OpenSSH,请先以管理员身份运行 PowerShell。 为了确保 OpenSSH 可用,请运行以下 cmdlet:

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

如果两者均尚未安装,则此操作应返回以下输出:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

然后,根据需要安装服务器或客户端组件:

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

这两者应该都会返回以下输出:

Path          :
Online        : True
RestartNeeded : False

启动并配置 OpenSSH 服务器

若要启动并配置 OpenSSH 服务器来开启使用,请以管理员身份打开 PowerShell,然后运行以下命令来启动 sshd service

# Start the sshd service
Start-Service sshd

# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'

# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}

连接到 OpenSSH 服务器

安装后,可从使用 PowerShell 安装了 OpenSSH 客户端的 Windows 10 或 Windows Server 2019 设备连接到 OpenSSH 服务器,如下所示。 请务必以管理员身份运行 PowerShell:

ssh username@servername

连接后,会收到如下所示的消息:

The authenticity of host 'servername (10.10.10.10)' can't be established.
ECDSA key fingerprint is SHA256:(<a large string>).
Are you sure you want to continue connecting (yes/no)?

选择“是”后,该服务器会添加到包含 Windows 客户端上的已知 SSH 主机的列表中。

系统此时会提示你输入密码。 作为安全预防措施,密码在键入的过程中不会显示。

连接后,你将看到 Windows 命令行界面提示符:

domain\username@SERVERNAME C:\Users\username>

卸载

使用 Windows 设置来卸载 OpenSSH

  1. 打开“设置”,然后转到“应用”>“应用和功能” 。
  2. 转到“可选功能”。
  3. 在列表中,选择“OpenSSH 客户端”或“OpenSSH 服务器” 。
  4. 选择“卸载”。

使用 PowerShell 卸载 OpenSSH

若要使用 PowerShell 卸载 OpenSSH 组件,请使用以下命令:

# Uninstall the OpenSSH Client
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Uninstall the OpenSSH Server
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

如果在卸载时服务正在使用中,稍后可能需要重启 Windows。


附录

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。
  1. avatarImg Liu

    怎么评论失败啊

    115Browser 25.0.1.0 Windows 10
    IP 属地 未知
  2. avatarImg joke

    确实挺不错的,还是微软的文档详细

    Quark 5.6.5.1336 iOS 15
    IP 属地 未知
  3. avatarImg Liu

    这个很有用!

    Edge 18.19582 Windows 10
    IP 属地 未知