Windows安装OpenSSH服务
安装步骤
进⼊链接下载最新的OpenSSH-Win64.zip,解压⾄ C:\Program Files\OpenSSH
打开cmd,进⼊ C:\Program Files\OpenSSH安装⽬录,执⾏以下命令
< -ExecutionPolicy Bypass -File install-sshd.ps1
设置服务⾃动启动并启动服务
sc config sshd start= auto
net start sshd
修复主机端的⽂件权限,进⼊ C:\Program Files\OpenSSH,右键 FixHostFilePermissions.ps1【使⽤PowerShell运⾏】,命令⾏提⽰全选是
执⾏这⼀步时有可能命令窗⼝⼀闪⽽过,由于系统禁⽌执⾏脚本的原因,打开Shell窗⼝,执⾏命令 set-executionpolicy remotesigned修改策略即可
⾄此ssh服务安装完成,默认端⼝是22,若服务器上开启防⽕墙需要设置对该端⼝的允许
修改设置ssh工具windows
进⼊ C:\ProgramData\ssh ⽬录下的sshd_config⽂件是ssh的配置⽂件,常⽤配置如下
# 端⼝号
Port 22
# 设置ssh在接收登录请求之前是否检查⽤户家⽬录和rhosts⽂件的权限和所有权
StrictModes no
# 密钥访问
PubkeyAuthentication yes
# 密码访问
PasswordAuthentication yes
# 空密码访问
PermitEmptyPasswords no
# administrator⽤户组的⽤户默认公钥⽂件路径
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
进⼊C:\ProgramData\ssh\⽬录,创建administrators_authorized_keys⽂件,在该⽬录下打开cmd窗⼝,执⾏以下命令设置权限
icacls administrators_authorized_keys /inheritance:r
icacls administrators_authorized_keys /grant SYSTEM:(F)
icacls administrators_authorized_keys /grant BUILTIN\Administrators:(F)
cmd中重启sshd服务就可以使⽤密钥登录SSH服务
net stop sshd
net start sshd
踩⼊的坑
⽹上很多教程介绍需要在 C:\Users\账户名\.ssh⽬录创建 authorized_keys公钥⽂件,后来发现7.9版本之后,公钥⽂件默认路径是
C:\ProgramData\ssh\administrators_authorized_keys并且需要设置权限,设置权限命令上⽂已有说明
Windows Service2012R2即使配置了公钥,连接时依然显⽰没有注册公钥,官⽅判断可能是权限问题,解决⽅法:进⼊安装⽬录,右键FixHostFilePermissions.ps1【使⽤PowerShell运⾏】,命令⾏提⽰全选是,重启sshd服务后密钥连接正常
配置密钥登录后仍需要输⼊密码,SSH默认不希望home⽬录和~/.ssh⽬录对组有写权限,修改配置⽂件中StrictModes no,不让 sshd 去检查⽤户家⽬录或相关档案的权限数据,这⾥我们粗暴的设置为不检查权限就好,或者设置客户端的权限,若客户端是linux可参考以下命令
chmod g-w /home/wjw
chmod 700 /home/wjw/.ssh
chmod 600 /home/wjw/.ssh/authorized_keys

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。