在 Windows Server 2022 上配置 OpenSSH 服务器
Secure Shell 缩写为 SSH,是一种用于通过 Internet 或其他不可信网络执行安全文件传输、系统管理和其他通信的工具。它提供安全加密的通信框架,防止敏感信息被窃听和盗窃
OpenSSH 是一套开源的安全网络实用程序,可实现 Secure Shell (SSH) 协议。它首先由 Tatu Ylonen 开发,后来由 OpenBSD 团队开发。 OpenSSH 用于为两台计算机之间的远程登录、文件传输和其他网络服务提供安全且加密的通道。
OpenSSH 提供的功能和优点包括:
- 端口转发:提供强大的端口转发能力,使用户能够像在本地运行一样安全地访问远程服务器上的服务,而无需将服务暴露到互联网上。
- X11转发:OpenSSH还允许用户通过SSH连接安全地转发X11(图形)应用程序,从而允许远程访问在远程服务器上运行的图形应用程序。
- 代理转发:代理转发允许用户将其身份验证凭据安全地转发到远程服务器,从而无需时不时地输入密码。
- 公钥身份验证:这提供了一种安全且便捷的方式来验证用户身份,而无需密码。
- 安全远程访问:用户可以使用SSH协议安全地访问和管理远程网络设备,该协议提供传输中数据的加密和身份验证。
- 加密文件传输:它还包括 SFTP(安全文件传输协议)和 SCP(安全复制)实用程序,用于在两台计算机之间安全地传输文件,确保数据在传输过程中加密。
总的来说,OpenSSH 在 IT 行业中的重要性怎么强调都不为过,因为它在保护关键基础设施以及维护敏感数据的机密性和完整性方面发挥着至关重要的作用。
是否有适用于 Windows 的 OpenSSH 服务器?
最大的问题是,我们是否能够在 Windows Server 2022 上安装和使用 OpenSSH Server?
答案是肯定的,OpenSSH服务器可以在Windows Server 2022上安装和使用,以实现安全的远程访问和文件传输功能。
Microsoft 为 Windows Server 2019 及更高版本提供了 OpenSSH 服务器实现。可以通过 Windows PowerShell 或服务器管理器 GUI 进行安装。该软件包包括 SSHD 服务(SSH 守护进程),它提供 SSH 服务器功能,以及其他几个 SSH 客户端实用程序,例如 SSH、SCP 和 SFTP。安装完成后,可以将其配置为允许用户远程连接到Windows服务器。
今天,我将演示如何在 Windows Server 2022 上配置 OpenSSH Server。
先决条件
对于本指南,您需要:
- 至少运行 Windows Server 2019 或 Windows 10(内部版本 1809)的设备。
- PowerShell 5.1 或更高版本。
- 属于内置管理员组成员的帐户。
要确认您是否是内置管理员组的成员,请使用以下命令:
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)如果您是内置管理员组的成员,此命令应返回True。
#1.在 Windows Server 2022 上安装 OpenSSH 服务器
在继续配置之前,我们需要确保 OpenSSH Server 已安装在 Windows Server 2022 上。有两种方法可以实现此目的。
- 使用图形用户界面
- 使用PowerShell
方法 1 - 使用 GUI 在 Windows Server 2022 上安装 OpenSSH Server
此方法涉及从“开始”菜单启动设置。然后选择应用程序。
选择可选功能并扫描以查看是否已安装 OpenSSH。
如果没有,请单击添加功能搜索并选择它,然后安装它。
安装后,返回应用->可选功能并确认 OpenSSH 已列出。
现在在服务选项卡下配置服务。按 Win+R 并在框中输入 services.msc 以启动服务窗口。
找到并双击 OpenSSH SSH Server 以打开配置选项卡。
在常规标签上,将启动类型切换为自动,然后选择启动启动服务。
方法 2 - 使用 PowerShell 在 Windows Server 2022 上安装 OpenSSH Server
您可以通过 PowerShell 在 Windows Server 2022 上轻松安装 OpenSSH Server。首先,使用以下命令检查 OpenSSH 是否可用:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'示例输出:
然后,您可以使用以下命令安装 OpenSSH 服务器/客户端:
# 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示例输出:
现在以提升的权限(管理员)打开 Powershell 来启动服务:
# Start the sshd service
Start-Service sshd
# Configure Automatic start(recommended):
Set-Service -Name sshd -StartupType 'Automatic'虽然防火墙规则是在安装过程中自动配置的,但我们仍然可以通过运行以下命令进行确认:
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."
}示例输出:
#2.连接到 Windows Server 2022 上的 OpenSSH 服务器
现在您已经在 Windows Server 2022 上安装并配置了 OpenSSH 服务器,我们可以测试以验证它是否按预期工作。
您可以从任何 OpenSSH 客户端使用 SSH 协议连接到 Windows Server 2022。该命令具有以下语法:
ssh domain\username@servername例如:
在 Windows Server 2022 上使用 SSH 密钥对身份验证
您可以生成并使用 SSH 密钥来连接到 Windows Server 2022。从 OpenSSH 客户端生成 SSH 密钥
ssh-keygen -t ed25519例如在我的 Ubuntu Linux 客户端上:
生成后,使用 SCP 协议将 OpenSSH 客户端上生成的密钥复制到 Windows 2022 OpenSSH 服务器:
##From Your OpenSSH Client
scp ~/.ssh/id_ed25519.pub username@window22_host:/Users/username/.ssh/authorized_keys 例如:
$ scp ~/.ssh/id_ed25519.pub klinsmann@192.168.205.20:/Users/klinsmann/.ssh/authorized_keys
[email 's password:
id_ed25519.pub 100% 108 102.5KB/s 00:00 现在尝试使用 SSH 密钥连接到 Windows Server 2022。
有用!从上面的输出来看,我们没有被要求提供密码进行身份验证。
#3。在 Windows Server 2022 上配置 OpenSSH
安装后,OpenSSH 默认将其配置文件存储在 %programdata%\ssh\sshd_config 中。您还可以通过使用 -f 参数启动 sshd.exe 来指定配置路径。要查看 C 盘中的程序数据文件夹,请单击查看->隐藏项目:
现在找到 ssh\sshd_config,然后使用所需的工具打开该文件进行编辑。
该配置文件包含所有必需的 OpenSSH 设置,包括AllowGroups、AllowUsers、DenyGroups、DenyUsers、AuthenticationMethods 等。
由于我们已启用 SSH 密钥,因此我们可以通过进行以下更改来禁用密码身份验证:
PasswordAuthentication no样本 :
保存更改,停止并启动 OpenSSH 服务器。然后测试是否可以使用密码连接到它。
上面的输出显示 e 只能使用 SSH 密钥进行连接。
判决
今天我们学习了如何在 Windows Server 2022 上配置 OpenSSH Server。我希望这对您很重要。
查看更多:
- 如何在 Windows 上安装和运行 Linux Bash Shell
- 如何在 Windows Server 2022 上配置 DNS 服务器
- 如何在 Windows Server 2022 上启用远程桌面
- 在 Windows Server 2022 中安装 Active Directory 域服务
- 将 Windows 系统加入 FreeIPA 领域,无需 Active Directory
















