[玩转系统] 如何使用 OpenSSH 在 Windows 上启用和配置 SSH 服务器
作者:精品下载站 日期:2024-12-14 23:30:50 浏览:15 分类:玩电脑
如何使用 OpenSSH 在 Windows 上启用和配置 SSH 服务器
基于OpenSSH软件包的SSH服务器是所有现代Windows版本操作系统的一部分。在本文中,我们将向您展示如何在 Windows 10/11 和 Windows Server 2022/2019 上安装和配置 OpenSSH 服务器,并通过安全 SSH 连接远程连接到它(就像在 Linux 中一样)。
如何在Windows上安装OpenSSH服务器?
OpenSSH Server 软件包是所有现代版本的 Windows 10(从 1803 开始)、Windows 11 和 Windows Server 2022/2019 的一部分,作为按需功能 (FoD)。要安装 OpenSSH 服务器,请打开提升的 PowerShell 提示符并运行以下命令:
Get-WindowsCapability -Online | Where-Object Name -like ‘OpenSSH.Server*’ | Add-WindowsCapability -Online
或者使用 DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
如果您的计算机直接连接到 Internet,则将在 Windows 上下载并安装 OpenSSH.Server 包。
您还可以通过现代的设置面板(设置 -> 应用和功能 -> 可选功能 -> 添加功能)在 Windows 10/11 上安装 OpenSSH。在列表中找到打开 SSH 服务器,然后单击安装。
您还可以从此处安装远程服务器管理工具 (RSAT)。
在离线(离线)环境中的计算机上,您可以从 Feature on Demand ISO 映像安装 OpenSSH 服务器(可通过 Microsoft 网站上的帐户获取:MSDN 或 my.visualstudio.com)。下载 ISO 并将其内容解压到 E:\FOD 文件夹(您只能解压文件
OpenSSH-Server-Package~31bf3856ad364e35~amd64~~.cab
)并从本地存储库安装 Windows 功能:
Add-WindowsCapability -Name OpenSSH.Server~~~~0.0.1.0 -Online -Source E:\FOD
GitHub 上的官方 Microsoft 存储库 (https://github.com/PowerShell/Win32-OpenSSH/releases/) 中还提供了适用于 Windows 的 OpenSSH 的 MSI 安装程序。例如,对于 Windows 10 x64,您需要下载并安装 OpenSSH-Win64-v8.9.1.0.msi 软件包。以下 PowerShell 命令将下载 MSI 文件并在您的计算机上安装 OpenSSH 客户端和服务器:
Invoke-WebRequest https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.9.1.0p1-Beta/OpenSSH-Win64-v8.9.1.0.msi -OutFile $HOME\Downloads\OpenSSH-Win64-v8.9.1.0.msi -UseBasicParsing
msiexec /i $HOME\Downloads\OpenSSH-Win64-v8.9.1.0.msi
您也可以在以前的 Windows 版本(Windows 8.1、Windows Server 2016/2012R2/2012)中安装 OpenSSH 服务器。请查看“如何在 Windows 上配置 SFTP 服务器(SSH FTP)?”一文中如何安装和配置 Win32-OpenSSH 的示例。 ”。
要确保 OpenSSH 服务器已安装,请运行以下命令:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'
State : Installed
在 Windows 上配置 SSH 服务器
在Windows上安装OpenSSH服务器后,添加了两个服务:
-
ssh-agent(OpenSSH 身份验证代理)——如果您配置了 SSH 密钥身份验证,可用于管理私钥;
sshd(OpenSSH SSH 服务器)。
您需要将 sshd 服务的启动类型更改为自动,并使用 PowerShell 启动该服务:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
使用 netstat 命令确保 SSH 服务器正在运行并等待 TCP 端口 22 上的连接:
netstat -na| find ":22"
确保 Windows Defender 防火墙允许通过 TCP 端口 22 到 Windows 的入站连接:
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled
Name DisplayName Description Enabled
---- ----------- ----------- -------
OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True
如果规则被禁用 (Enabled=False) 或丢失,您可以使用 New-NetFirewallRule cmdlet 创建新的入站规则:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
默认情况下,关键的 OpenSSH 组件位于以下文件夹中:
-
OpenSSH 服务器可执行文件:
C:\Windows\System32\OpenSSH\
(sshd.exe、ssh.exe、ssh-keygen.exe、sftp.exe 等)
sshd_config 文件(在服务第一次启动后创建):
C:\ProgramData\ssh
authorized_keys 文件和密钥可以存储在用户配置文件文件夹中:
%USERPROFILE%\.ssh\
sshd_config:OpenSSH 服务器配置文件
您可以在配置文件中更改 OpenSSH 服务器设置:
%programdata%\ssh\sshd_config
。这是一个带有一组指令的纯文本文件。您可以使用任何文本编辑器进行编辑:
start-process notepad C:\Programdata\ssh\sshd_config
例如,要拒绝特定域用户帐户(或指定域中的所有用户)的 SSH 连接,请将以下指令添加到文件末尾:
DenyUsers a-d\[email protected]
DenyUsers corp\*
仅允许 SSH 连接到特定域安全组:
AllowGroups a-d\sshadmins
您可以允许访问本地用户组:
AllowGroups sshadmins
默认情况下,所有 Windows 用户都可以连接到 OpenSSH。 sshd_config 文件中的指令按以下顺序处理:DenyUsers、AllowUsers、DenyGroups、AllowGroups。
您可以拒绝具有管理员权限的帐户的 SSH 登录。在这种情况下,如果您需要在 SSH 会话中执行任何特权操作,则必须使用 runas。
DenyGroups Administrators
以下指令允许您使用 SSH 私钥或密码访问 Windows。
PubkeyAuthentication yes
PasswordAuthentication yes
您可以使用 Port 指令在 sshd_config 配置文件中更改接受 OpenSSH 服务器连接的默认 TCP/22 端口。
对 sshd_config 文件进行任何更改后,需要重新启动 sshd 服务
restart-service sshd
如何通过 SSH 连接到远程 Windows 计算机?
现在您可以尝试使用 SSH 客户端连接到 Windows 10 计算机(在本示例中我使用的是 putty)。
您可以使用内置的 Windows SSH 客户端连接到远程主机。为此,请打开命令提示符并运行以下命令:
ssh [email protected]
在此示例中,max 是远程 Windows 计算机上的用户名,192.168.13.12 是计算机的 IP 地址或 DNS 名称。
请注意,通过 SSH 连接到 Windows 时可以使用以下用户名格式:
max@server1
- 本地 Windows 用户
[email protected]@server1
- Active Directory 用户或 Microsoft/Azure 帐户(使用 UserPrincipalName 格式)
a-d\max@server1
- NetBIOS 名称格式
在 Active Directory 域中,您可以在 SSH 中使用 Kerberos 身份验证。为此,您需要在 sshd_config 中启用以下指令:
GSSAPIAuthentication yes
现在,您可以通过域用户会话从加入域的 Windows 计算机透明地连接到 SSH 服务器。在这种情况下,将不会请求用户的密码,并且将通过 Kerberos 执行 SSO 身份验证:
ssh -K server1
第一次连接时,系统会提示您将主机添加到已知 SSH 主机列表中(
C:\Users\your_user\.ssh\known_hosts
)。
点击
Yes
,然后使用您的 Windows 用户帐户登录。
如果 SSH 连接成功,您将看到 cmd.exe shell 提示符。
admin@win10pc C:\Users\admin>
您可以在 SSH 命令提示符中运行不同的命令、脚本和应用程序。
我更喜欢在 PowerShell 控制台中工作。要启动它,请运行:
powershell.exe
要将 OpenSSH 中的默认 cmd.exe shell 更改为 PowerShell,请使用以下 PowerShell 命令更改注册表:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
重新启动 SSH 连接并确保 PowerShell 现在用作默认 SSH shell(这由提示符指示)
PS C:\Users\admin>
)。
PowerShell 提示符已在我的 SSH 会话中启动,其中常用功能起作用:选项卡自动完成、PSReadLine 语法突出显示、命令历史记录等。如果当前用户是本地管理员组的成员,则即使启用了 UAC,所有会话命令也会以提升的方式执行。
Windows 上的 OpenSSH 服务器可用于各种 SSH 隧道场景。
在Windows中检查SSH连接日志
默认情况下,在 Windows 中,SSH 服务器连接日志不会写入文本文件,而是通过 Windows 事件跟踪 (ETW) 写入单独的事件日志。打开事件查看器控制台(
eventvwr.msc
)并导航至应用程序和服务日志 -> OpenSSH -> 操作。
如果您使用密码成功连接到 SSH 服务器,日志中将出现一个事件:
EventID: 4
sshd: Accepted password for root from 192.168.1.53 port 65749 ssh2
如果执行了 SSH 密钥身份验证,您将看到以下事件:
sshd: Accepted publickey for locadm from 192.168.1.53 port 61426
ssh2: ED25519 SHA256:FEHDEC/G42FS23209C2KMb4335923pigN31s3qMK322lGibD
如果您希望将 SSH 连接日志写入本地文本文件,则需要在 sshd_config 文件中启用以下参数:
SyslogFacility LOCAL0
LogLevel INFO
重新启动 sshd 服务并确保 SSH 服务器日志现已写入纯文本文件 C:\ProgramData\ssh\logs\sshd.log
您可以使用 PSRemoting 的安全 SSH 连接通过 WinRM 管理远程计算机。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[韩剧] 宝物岛/宝藏岛/金银岛(2025)【全16集】【朴炯植/悬疑】
[电影] 愤怒的牦牛 (2025) 国语中字 4k
[短剧合集] 2025年05月30日 精选+付费短剧推荐56部
[软件合集] 25年5月30日 精选软件26个
[软件合集] 25年5月29日 精选软件18个
[短剧合集] 2025年05月28日 精选+付费短剧推荐38部
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag