WindowsServer环境下安装OpenSSH(2008R2)

WindowsServer环境下安装OpenSSH服务端(2008R2)

适用环境

Windows2008R2及以上(Win10或者WindowsServer2022以上版本可以直接在设置里面的附加功能安装OpenSSH服务端)

背景

使用Jenkins部署需要上传打包文件,遂需要再Windows上安装OpenSSH用来通过Sftp上传文件

教程

下载OpenSSH-Win32

进入 https://github.com/PowerShell/Win32-OpenSSH/releases 下载安装包

这边分Windows版本,实测WindowsServer2008R2最多只能支持到v8版本,v9版本在执行安装时会报错,如果你使用的是WindowsServer2019或者以上的版本,可以下载最新版本

image-20240416211801382

下载完之后放到C:\Program Files\OpenSSH文件夹下(别问为什么,官方文档这么说的)

安装OpenSSH

进入到C:\Program Files\OpenSSH下,在地址栏输入powershell以唤起,如果唤起的powershell没有管理员权限,请手动打开一个有管理员权限的powershell并进入目录中cd /d C:\Program Files\OpenSSH

image-20240416212137693

执行安装

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

不报红即为成功

修改配置文件

编辑sshd_config_default

这边我只修改配置文件中的端口号

原来的Port是被注释掉的,放开注释并将22改为你需要的端口号 保存即可

image-20240416213024907

放行防火墙

分Windows版本

Windows2012版本及以上在powershell输入

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Windows2012版本以下在powershell输入

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

其中22为端口号,如果你在配置文件中改为了其他端口号,这边换一下

启动并加入自启

powershell中执行

# 启动sshd服务
net start sshd
# 开机自启
Set-Service sshd -StartupType Automatic

测试连接

直接使用xshell等能连接Linux终端的软件,输入windows登录的账号密码连接即可

疑难杂症

使用v8.9版本的OpenSSH时,Sftp或者Scp无法正确加载:

https://github.com/PowerShell/Win32-OpenSSH/issues/1922#issuecomment-1082108871

只需要将OpenSSH的安装路径添加到系统的环境变量Path中去,然后在服务中重启OpenSSH就可以了

参考资料

Win32-OpenSSH Github官方文档
评论区
头像
文章目录