文章目录
一、关于OpenSSH for Windows
OpenSSH 是安全 Shell (SSH) 工具的开放源代码版本,Linux 及其他非 Windows 系统的管理员使用此类工具跨平台管理远程系统。
OpenSSH 在 2018 年秋季的時候,Windows中也可以安裝OpenSSH,并包含在 Windows Server 和 Windows 客户端中,也就是Windows server版本和Windows 10,Windows 11都可以使用。
SSH 基于客户端-服务器体系结构,用户在其中工作的系统是客户端,所管理的远程系统是服务器。
OpenSSH for Windows 内置了以下命令:
- ssh 是在用户的本地系统上运行的 SSH 客户端组件
- ssh 是必须在远程管理的系统上运行的 SSH 服务器组件
- ssh-keygen 为 SSH 生成、管理和转换身份验证密钥
- ssh-agent 存储用于公钥身份验证的私钥
- ssh-add 将私钥添加到服务器允许的列表中
- ssh-keyscan 帮助从主机收集公用 SSH 主机密钥
- sftp 是提供安全文件传输协议的服务,通过 SSH 运行
- scp 是在 SSH 上运行的文件复制实用工具
二、OpenSSH 在Windows中进行安装
OpenSSH 是一款用于远程登录的连接工具,它使用 SSH 协议。 它会加密客户端与服务器之间的所有流量,从而遏止窃听、连接劫持和其他攻击。
OpenSSH 兼容的客户端可用于连接到 Windows Server 和 Windows 客户端设备。
Windows 安装openssh必须满足以下条件:
- 系统OS必须是Windows 10 或者Windows 2019 及以后的版本
在CLI命令行输入:
winver.exe
查看系统版本是否符合要求。
- PowerShell 5.1 或更高版本
$PSVersionTable.PSVersion
输出以下结果查看power shell版本是否符合要求。
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 4412
- 安装账户必须是管理员权限
通过以下指令,如果当前账户是administrator,则输出结果为true。
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
三、安装或者卸载OpenSSH for Windows
使用 PowerShell 安装 OpenSSH,需要先以管理员身份运行 PowerShell。
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
如果这个Windows还未安装过,则会输出:
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
我们可以根据需要安装openssh client 或者openssh server
# 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
安装后,如果需要卸载:
卸载open ssh client
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
卸载open ssh server
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
四、启动openssh for Windows
若要启动并配置 OpenSSH 服务器,以管理员身份运行powershell,执行以下命令启动ssh服务。
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
五、通过openssh 连接Server
可以从安装了 OpenSSH 客户端的 Windows 或 Windows Server 设备连接到 OpenSSH 服务器。连接命令如下:
ssh domain\username@servername
范例:
ssh csdn\user01@172.16.1.1
连接服务器过程中,会有如下提示:
The authenticity of host 'servername (172.16.1.1)' can't be established.
ECDSA key fingerprint is SHA256:(<a large string>).
Are you sure you want to continue connecting (yes/no)?
这里需要选择yes,并在后续按提示输入密码。