共计 4346 个字符,预计需要花费 11 分钟才能阅读完成。
Windows配置OpenSSH
适用于 Windows Server 2019、Windows 10、Windows Server 2022
OpenSSH 是一款用于远程登录的连接工具,它使用 SSH 协议。 它会加密客户端与服务器之间的所有流量,从而遏止窃听、连接劫持和其他攻击。
OpenSSH 可用于将安装了 OpenSSH 客户端的 Window 10(版本 1809 及更高版本)或 Windows Server 2019 设备连接到那些安装了 OpenSSH 服务器的设备。
如果你是从 GitHub 存储库 (PowerShell/openssh-portable) 下载的 OpenSSH,请按照该网页中列出的说明操作,而不是遵照本文列出的说明。
使用 Windows 设置来安装 OpenSSH
可以使用 Windows Server 2019
和 Windows 10
设备上的 Windows 设置安装这两个 OpenSSH 组件。
若要安装 OpenSSH 组件:
- 打开“设置”,选择“应用”>“应用和功能”,然后选择“可选功能” 。
- 扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后:
- 查找“OpenSSH 客户端”,再单击“安装”
- 查找“OpenSSH 服务器”,再单击“安装”
设置完成后,回到“应用”>“应用和功能”和“可选功能”,你应会看到已列出 OpenSSH 。
安装 OpenSSH 服务器将创建并启用一个名为 OpenSSH-Server-In-TCP
的防火墙规则。 这允许端口 22 上的入站 SSH 流量。 如果未启用此规则且未打开此端口,那么连接将被拒绝或重置。
使用 PowerShell 安装 OpenSSH
若要使用 PowerShell
安装 OpenSSH
,请先以管理员身份运行 PowerShell
。 为了确保 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
然后,根据需要安装服务器或客户端组件:
# 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 服务器来开启使用,请以管理员身份打开 CMD,然后运行以下命令来启动 sshd service
:
# 启动OpenSSH服务
C:\Users\Administrator>net start sshd
OpenSSH SSH Server 服务正在启动 ..
OpenSSH SSH Server 服务已经启动成功。
# 设置sshd service为启动方式为自动
C:\Users\Administrator>sc config sshd start=auto
[SC] ChangeServiceConfig 成功
连接到 OpenSSH 服务器
安装后,可从使用 PowerShell 安装了 OpenSSH 客户端的 Windows 10 或 Windows Server 2019 设备连接到 OpenSSH 服务器,如下所示。 请务必以管理员身份运行 PowerShell:
ssh 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
若要使用 Windows 设置来卸载 OpenSSH:
- 打开“设置”,然后转到“应用”>“应用和功能” 。
- 转到“可选功能”。
- 在列表中,选择“OpenSSH 客户端”或“OpenSSH 服务器” 。
- 选择“卸载”。
使用 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。
低版本的Windows系统安装
下面以windows server 2008R2
做演示:
下载解压好OpenSSH-Win64.zip
到指定文件夹
下载地址:https://github.com/PowerShell/Win32-OpenSSH
安装powershell:
![图形用户界面, 文本, 应用程序 描述已自动生成]
将OpenSSH压缩包解压到指定目录,打开powershell进入该目录下面,执行下方语句:
.\install-sshd.ps1
执行过程如下图:
如果出现下图错误提示,执行该命令set-executionpolicy remotesigned
,按照提示输入Y
,继续安装即可。
配置环境变量,把OpenSSH
安装路径按照格式添加到后面即可。
设置开机自启动
打开CMD输入下方命令启动SSH服务,并设置为开机自启动。
net start sshd
sc config sshd start=auto
输入命令测试是否能连接成功:
SSH username@IP地址
SSH username@servername
输入密码后跳转到该页面表示连接成功:
Windows配置OpenSSH免密登录
如果你想在两台 Windows 机器之间设置免密登录,你需要先在客户端机器上生成公钥和私钥。可以在CMD
命令提示符中运行 ssh-keygen -t rsa
命令来生成密钥
接下来,你需要将客户端的公钥(id_rsa.pub
文件的内容)复制到远程 Windows 机器的 C:\Users\username\.ssh\authorized_keys
文件中。如果远程机器上没有 .ssh
文件夹,你需要手动创建它。
这样就完成了免密登录的设置。
接下来看一下演示过程:
生成公钥
以管理员身份打开 CMD
命令提示符,输入 ssh-keygen -t rsa
命令,并按三下回车键:
C:\Users\Administrator>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Administrator/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Administrator/.ssh/id_rsa
Your public key has been saved in C:\Users\Administrator/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:TsdqDVzPYA09iNQPR5PWwC2GH7DHsIYwEl3D3/4cmTE administrator@zhougong
The key's randomart image is:
+---[RSA 3072]----+
| ooo++o+B+= |
| ..ooo=B@.o |
| ..BO++ |
| . =.=+ E |
| S o.o = |
| o = . + |
| + . o . |
| . o |
| |
+----[SHA256]-----+
C:\Users\Administrator>
保存公钥
查看id_rsa.pub
文件的内容:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDBmDyiyo6IBGBGsUT0zd8oWT8QsI1S+uZcJzN3xCzwEi34W54AqO7eBz6L6L1dBss3e6UmQDc0HZqS4LjcYeIl32DQw7oH7waJetvC2MeRtIrXoFjywXbl1aVliJeNFswQYSwvNDQSL7XzcmIJ+Y61EH1MFGnSiq983WBMqj1DqJytu5BcMU2X4SIYtUGR84kE6jW43BTPzn72sFYCmg20fcr4iEeVPDHr3L3pgzf20F9qjNmVeRSI5IRTd2g0VNoRiyflu8XkTxHdQn+wquJXo4KIZCC2jT74kS524JP0fAn+qlSM4+xrYKU5bV+wu5lnoTRLR3PEnysixaRIFcSMq5UgXEMJjsSzGO4urjyWI6PcjdGPPA7LA2k0YuN12LZI9cFnngL+fhQ7yV7Ik5z4sIh6GmnqG9Osa0O2E30ws0ZiBTlUQrXWwnr76shMpW+7jiblVaFek986ULuFRGFm766ZdmBZ0HXLhKGSLAXCxa6/n79pEmU8ke/kmBEaMVE= administrator@zhougong
把公钥的内容保存到服务端 C:\Users\username\.ssh\authorized_keys
文件中。如果远程机器上没有 .ssh
文件夹,你需要手动创建它。
服务端配置截图:
验证配置
客户端打开 CMD
命令提示符,输入 ssh 用户名@IP地址
或者输入 ssh 用户名@主机名
命令验证是否成功: