适用于 Windows 的 OpenSSH 入门
本文内容
先决条件
启用适用于 Windows Server 2025 的 OpenSSH
连接到 OpenSSH 服务器
卸载适用于 Windows 的 OpenSSH
后续步骤
OpenSSH 是一款用于远程登录的连接工具,它使用 SSH 协议。 它会加密客户端与服务器之间的所有流量,从而遏止窃听、连接劫持和其他攻击。
OpenSSH 兼容的客户端可用于连接到 Windows Server 和 Windows 客户端设备。
重要
如果你是从 GitHub 存储库 (PowerShell/Win32-OpenSSH ) 下载的 OpenSSH 试用版,请按照该网页中列出的说明操作,而不是遵照本文列出的说明。 Win32-OpenSSH 存储库中的一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 Microsoft 不对此处提供的信息作任何明示或默示的担保。
在开始之前,计算机必须满足以下要求:
若要验证环境,请打开提升的 PowerShell 会话并执行以下操作:
输入 winver.exe ,并按 Enter,以查看 Windows 设备的版本详细信息。
运行 $PSVersionTable.PSVersion
。 验证主要版本至少为 5,次要版本至少为 1。 详细了解如何在 Windows 上安装 PowerShell 。
运行以下命令。 当你是内置 Administrator 组的成员时,输出将显示 True
。
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
启用适用于 Windows Server 2025 的 OpenSSH
从 Windows Server 2025 开始,OpenSSH 现在默认安装。 还可以在服务器管理器中启用或禁用 sshd
服务。
若要使用服务器管理器启用 SSHD,请执行以下操作:
在服务器管理器 的左侧导航窗格中,选择本地服务器 。
在属性 窗口中,找到远程 SSH 访问 。
选择已禁用 以启用 OpenSSH 服务。
备注
如果需要允许或限制特定用户或组使用 OpenSSH 进行远程访问,请将其添加到 OpenSSH 用户 用户组。
若要使用 PowerShell 启用 SSHD,请执行以下操作:
以管理员身份打开 PowerShell,并运行以下 cmdlet 以启动 SSHD 服务:
# Start the sshd service
Start-Service sshd
还可以运行以下可选但建议的 cmdlet 以自动启动 SSHD,以确保其保持启用状态:
Set-Service -Name sshd -StartupType 'Automatic'
最后,运行以下命令以验证 SSHD 安装过程是否自动配置了防火墙规则:
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."
}
安装适用于 Windows Server 的 OpenSSH
要在 Windows 10 设备上安装 OpenSSH 组件,请执行以下操作:
打开“设置” ,选择“系统” ,然后选择“可选功能” 。
扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后 :
打开“服务” 桌面应用。 (选择“开始” ,在搜索框中键入 services.msc ,然后选择“服务” 应用或按 ENTER 。)
在详细信息窗格中,双击“OpenSSH SSH 服务器” 。
在“常规” 选项卡上的“启动类型” 下拉菜单中,选择“自动” ,然后选择“确定” 。
若要启动服务,请选择“启动” 。
要在 Windows 11 设备上安装 OpenSSH 组件,请执行以下操作:
打开“设置” ,选择“系统” ,然后选择“可选功能” 。
扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“查看功能” ,然后执行以下操作:
打开“服务” 桌面应用。 (选择“开始” ,在搜索框中键入 services.msc ,然后选择“服务” 应用或按 ENTER 。)
在详细信息窗格中,双击“OpenSSH SSH 服务器” 。
在“常规” 选项卡上的“启动类型” 下拉菜单中,选择“自动” ,然后选择“确定” 。
若要启动服务,请选择“启动” 。
要在 Windows Server 设备上安装 OpenSSH 组件,请执行以下操作:
打开“设置” ,选择“系统” ,然后选择“可选功能” (也称为“管理可选功能” )。
扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后 :
找到“OpenSSH 客户端” ,然后选择“安装”
搜索“OpenSSH 服务器” ,然后选择“安装”
打开“服务” 桌面应用。 (选择“开始” ,在搜索框中键入 services.msc ,然后选择“服务” 应用或按 ENTER 。)
在详细信息窗格中,双击“OpenSSH SSH 服务器” 。
在“常规” 选项卡上的“启动类型” 下拉菜单中,选择“自动” ,然后选择“确定” 。
若要启动服务,请选择“启动” 。
备注
安装 OpenSSH 服务器将创建并启用一个名为 OpenSSH-Server-In-TCP
的防火墙规则。 这允许端口 22 上的入站 SSH 流量。 如果未启用此规则且未打开此端口,那么连接将被拒绝或重置。
若要使用 PowerShell 安装 OpenSSH,请执行以下操作:
以管理员身份运行 PowerShell。
运行以下 cmdlet 以确保 OpenSSH 可用:
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
之后,运行以下 cmdlet 以根据需要安装服务器或客户端组件:
# 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 服务器以供初始使用,请打开提升的 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 客户端的 Windows 或 Windows Server 设备连接到 OpenSSH 服务器。 在 PowerShell 提示符下,运行以下命令。
ssh domain\username@servername
连接后,会收到类似如以下输出的消息。
The authenticity of host 'servername (10.00.00.001)' 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:
打开“设置” ,选择“系统” ,然后选择“可选功能” (也称为“管理可选功能” )。
在列表中,选择“OpenSSH 客户端”或“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。
现在,你已经完成了适用于 Windows 的 OpenSSH 服务器的安装,以下是一些可以帮助你学习如何使用它的文章: