Windows下安装openSSH

技术问题

Windows下安装openSSH

2024-09-02 10:27


Windows下安装openSSH

                                            




简介:OpenSSH 是安全 Shell (SSH) 工具的开放源代码版本,Linux 及其他非 Windows 系统的管理员使用此类工具跨平台管理远程系统。 OpenSSH 在 2018 年秋季已添加至 Windows,并包含在 Windows 10 和 Windows Server 2019 中。

 

本文介绍三种安装方式:

方式1:使用 Windows 设置来安装 OpenSSH

方式2:使用 PowerShell 安装 OpenSSH

方式3:下载OpenSsh安装包进行安装

方式1\2:适用于 Windows Server 2019、Windows 10(2018秋季之后发行的版本)、Windows Server 2022、Windows 11

方式3 适用(除Windows 2000、XP 或 2003外)所有版本,安装时请选择合适的安装包版本。

————————————————

一、使用 Windows 设置 来安装 OpenSSH

可以使用 Windows Server 2019 和 Windows 10(2018秋季之后发行的版本) 设备上的 Windows 设置安装这两个 OpenSSH 组件。

若要安装 OpenSSH 组件:

打开“设置”,选择“应用”>“应用和功能”,然后选择“可选功能” 。

扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择“添加功能”,然后:

查找“OpenSSH 客户端”,再单击“安装”

查找“OpenSSH 服务器”,再单击“安装”

设置完成后,回到“应用”>“应用和功能”和“可选功能”,你应会看到已列出OpenSSH 。
启用openssh server服务

#1、开启服务命令 

net start sshd

#2、关闭服务

net stop sshd

#默认端口为22
或者在可视化服务界面,启动OPENSSH SERVER服务(并设置为自动)

 

备注:

安装 OpenSSH 服务器将自动创建并启用一个名为 OpenSSH SSH Server (sshd) 的防火墙规则。 这允许端口 22 上的入站 SSH 流量。 如果未启用此规则且未打开此端口,那么连接将被拒绝或重置。
Windows下安装openSSH(图1)
 

二、使用 PowerShell 安装 OpenSSH

若要使用 PowerShell 安装 OpenSSH,请先以管理员身份运行 PowerShell(win+x快捷键进行打开)。 为了确保 OpenSSH 可用,请运行以下 cmdlet:

 

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

 

然后,根据需要安装服务器或客户端组件:

#安装 OpenSSH客户端

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

安装OpenSSH Server 服务端

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

这两者应该都会返回以下输出:

Path          :

Online        : True

RestartNeeded : False

启动并配置 OpenSSH 服务器

若要启动并配置 OpenSSH 服务器来开启使用,请以管理员身份打开 PowerShell,然后运行以下命令来启动 sshd service:

# 启动ssh服务

Start-Service sshd

# 设置服务为自动:

Set-Service -Name sshd -StartupType 'Automatic'

# 创建防火墙规则,放行22端口

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安装包进行安装(win2019以前的版本只能通过安装包安装)

openssh下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases



安装后,会在c:\programdata目录下生成一个ssh目录,win2022初次安装后,需要现在服务里启用openssh server服务,才会看到ssh目录下有文件,

Windows下安装openSSH(图3)
使用安装包安装的openssh也是同样的配置文件和目录结构。

注意:在2019以后版本(win2019以前版本,可对默认创建的OPENSSH防火墙规则直接对应配置文件中自定义的端口对应修改即可,无需单独创建新的防火墙规则。),
安装后,防火墙默认会增加一个OpenSSH SSH Server (sshd) 规则,默认放行22端口,如在配置文件修改了ssh的链接端口后,需要另外创建防火墙规则放行自定义的端口,默认的OpenSSH SSH Server (sshd)规则禁用掉。

使用远程ssh链接工具链接上服务器后,默认是使用cmd命令,如需修改成powershell,请使用以下命令:

管理员权限在PowerShell执行以下命令, 使SSH连接Windows时默认使用Powershell

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

 

 


标签:
  • Windows下安装openSSH