参考微软官网文档:https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui#install-openssh-for-windows
Windows配置openssh server的办法比较多,Windows系统版本也比较多,方案的兼容性需要全面测试才知道,我这里对常见方案进行了鉴别校验,给出全Windows系统版本的兼容性方案,不用试错了,直接用
提醒:不要尝试这里下载的openssh的.exe文件去安装,不适用server系统,pc系统我也没去尝试。
4种方法安装配置windows openssh server
不限于4种方式,我验证过这4种,也用过cygwin ssh。
在server2019、 server2022、新版win10、win11上,4种方法都可以,但建议后2种,因为前2种安装的openssh server只有sshd服务没有ssh-agent服务(OpenSSH Authentication Agent)
方法一、“设置”→ “应用”→ “应用和功能”→ “可选功能”→ “添加功能”
安装完以后启动服务并设置开机启动
代码语言:javascript复制Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
卸载的话,是从“设置”→ “应用”→ “应用和功能”→ “可选功能”→ “已安装功能”找到openssh卸载
方法二、powershell先查,看结果来安装,少客户端则安装客户端,少服务端则安装服务端
代码语言:javascript复制#查询
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
#安装客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
#安装服务端
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
#卸载服务端(需要重启)
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
#再次查询
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
安装完以后启动服务并设置开机启动
代码语言:javascript复制Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
在server2016和server2012r2上,用方法三、四
方法三、在GitHub下载.msi或.zip
https://github.com/PowerShell/Win32-OpenSSH/releases
.msi双击即可安装,安装完成后服务自动起来并且是开机启动的
卸载的话通过appwiz.cpl程序列表卸载
如果下载的是.zip压缩包
.zip解压后,安装的话运行里面的install-sshd.ps1,卸载的话运行里面的uninstall-sshd.ps1
安装完以后启动服务并设置开机启动
代码语言:javascript复制Set-Service -Name sshd -StartupType 'Automatic'
Set-Service -Name ssh-agent -StartupType 'Automatic'
Start-Service sshd
Start-Service ssh-agent
方法四、用choco安装(本质上跟方法四的.zip方式相同)
代码语言:powershell复制Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
第一行执行完毕后会提示重启机器,先重启机器,再重新执行第一行,然后是后面2行
choco install openssh -y #卸载命令是choco uninstall openssh
powershell -file "C:Program FilesOpenSSH-Win64install-sshd.ps1"
#卸载命令是powershell -file "C:Program FilesOpenSSH-Win64uninstall-sshd.ps1"
上图是第一次执行第一行命令,下图是重启后再次执行第一行命令
代码语言:powershell复制# 启动sshd服务
Start-Service sshd
Start-Service ssh-agent
# 设置开机自启
Set-Service -Name sshd -StartupType 'Automatic'
Set-Service -Name ssh-agent -StartupType 'Automatic'
最后说一下Windows上ssh server配置文件位置
在服务端C:ProgramDatassh下(首次启动sshd后会生成该文件夹),配置文件是sshd_config
C:ProgramDatasshsshd_config
服务端配置ssh免密码登录可参考https://www.cnblogs.com/freedom-w/articles/17784981.html
修改文件sshd_config 以下内容:
代码语言:javascript复制确保以下2条没有被注释
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
确保以下2条有注释掉
#Match Group administrators
#AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
authorized_keys的位置:C:UsersAdministrator.sshauthorized_keys
客户端验证登录的时候,注意如果服务端重装系统或者重新配置ssh server,则客户端需要清理C:UsersAdministrator.sshknown_hosts后再试。
扩展:云上服务器是否支持用vscode访问?这种说白了就是最基础的软件开发环境配置,到不了云产品的层面,假如用电脑搞开发,也得查资料去配置。如本文档开头所阐述的办法,Windows也可以配置ssh服务,如果vscode只是作为ssh客户端来连接ssh服务端,从原理上讲,不论什么系统的服务器,只要配置好了ssh服务就行(需要sshd和ssh-agent都正常,如果是Windows服务器,那就是方法三和方法四),可参考vscode 使用ssh进行远程开发 (remote-ssh),本人验证可行。