Windows系统SSH服务安装指南
最近在做Jenkins的持续集成,公司的应用服务器大多是Windows系统,平时的运维主要是靠远程桌面的方式,为了使用Jenkins自动部署,需要在windows系统上安装SSH的服务,这里介绍微软官方的解决方案,详细介绍可以参考官网wiki。
基于PowerShell的OpenSSH: https://github.com/PowerShell/Win32-OpenSSH/releases
安装步骤
进入链接下载最新的OpenSSH-Win64.zip,解压至
C:\Program Files\OpenSSH打开cmd,进入
C:\Program Files\OpenSSH安装目录,执行以下命令1
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
设置服务自动启动并启动服务
1
2sc config sshd start= auto
net start sshd修复主机端的文件权限,进入
C:\Program Files\OpenSSH,右键 FixHostFilePermissions.ps1【使用PowerShell运行】,命令行提示全选是
执行这一步时有可能命令窗口一闪而过,由于系统禁止执行脚本的原因,打开Shell窗口,执行命令 set-executionpolicy remotesigned修改策略即可
至此ssh服务安装完成,默认端口是22,若服务器上开启防火墙需要设置对该端口的允许
修改设置
进入 C:\ProgramData\ssh 目录下的sshd_config文件是ssh的配置文件,常用配置如下
1 | # 端口号 |
进入C:\ProgramData\ssh\目录,创建administrators_authorized_keys文件,在该目录下打开cmd窗口,执行以下命令设置权限
1 | icacls administrators_authorized_keys /inheritance:r |
cmd中重启sshd服务就可以使用密钥登录SSH服务
1 | net stop sshd |
踩入的坑
网上很多教程介绍需要在
C:\Users\账户名\.ssh目录创建authorized_keys公钥文件,后来发现7.9版本之后,公钥文件默认路径是C:\ProgramData\ssh\administrators_authorized_keys并且需要设置权限,设置权限命令上文已有说明Windows Service2012R2即使配置了公钥,连接时依然显示没有注册公钥,官方判断可能是权限问题 Fix SSH file permissions,解决方法:进入安装目录,右键 FixHostFilePermissions.ps1【使用PowerShell运行】,命令行提示全选是,重启sshd服务后密钥连接正常
配置密钥登录后仍需要输入密码,SSH默认不希望home目录和~/.ssh目录对组有写权限,修改配置文件中
StrictModes no,不让 sshd 去检查用户家目录或相关档案的权限数据,这里我们粗暴的设置为不检查权限就好,或者设置客户端的权限,若客户端是linux可参考以下命令
1 | chmod g-w /home/wjw |








