Blog Details

  • Home  
  • 多种方法安装配置windows openssh server

多种方法安装配置windows openssh server

代码语言:javascript复制参考微软官网文档:https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui#install-openssh-for-windowsWindows配置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或.ziphttps://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 Files\OpenSSH-Win64\install-sshd.ps1"

#卸载命令是powershell -file "C:\Program Files\OpenSSH-Win64\uninstall-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:\ProgramData\ssh\下(首次启动sshd后会生成该文件夹),配置文件是sshd_config

C:\ProgramData\ssh\sshd_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:\Users\Administrator\.ssh\authorized_keys

客户端验证登录的时候,注意如果服务端重装系统或者重新配置ssh server,则客户端需要清理C:\Users\Administrator\.ssh\known_hosts后再试。

扩展:云上服务器是否支持用vscode访问?这种说白了就是最基础的软件开发环境配置,到不了云产品的层面,假如用电脑搞开发,也得查资料去配置。如本文档开头所阐述的办法,Windows也可以配置ssh服务,如果vscode只是作为ssh客户端来连接ssh服务端,从原理上讲,不论什么系统的服务器,只要配置好了ssh服务就行(需要sshd和ssh-agent都正常,如果是Windows服务器,那就是方法三和方法四),可参考vscode 使用ssh进行远程开发 (remote-ssh),本人验证可行。