windows 开启 openssh-server
这篇文章是从azure 羊毛(二) | Bao’s 备忘录这里分离出来的。因为我发现给 windows server 2012 开 openssh 的坑远不及于此,这篇按官方教程来的小实践只能算个引子,于是干脆独立出来。
在 windows 10 专业版上部署通过。
参考文章:
- Installation of OpenSSH For Windows Server | Microsoft Docs
- ssh - Setting up OpenSSH for Windows using public key authentication - Stack Overflow
安装,配置服务
安装
1 | Add-WindowsCapability -Online -Name OpenSSH.Server |
配置自启
1 | Set-Service -Name sshd -StartupType 'Automatic' |
配置防火墙(其实我一开始是像 rdp 这边用图形界面配置的,结果软软的教程居然给了命令,学到了,主要是写教程方便不用截图 - -)
1 | New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 999 |
如果用的是默认 22 端口不改其实可以略过这步。咱不习惯用默认端口就是。
更改默认命令行程序为 powershell
1 | New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force |
修改 sshd_config
sshd_config 位于 C:\ProgramData\ssh\sshd_config
修改端口
1 | #Port 22 |
注释掉旧版密钥路径
1 | #Match Group administrators |
关闭密码登录
1 | PasswordAuthentication no |
放入密钥
将公钥放到 C:\Users\zbttl\.ssh
里面,改名为authorized_keys
。别说你看到这里都还没公钥。。。
可能还要修复公钥的权限。微软官方文章使用的是 opensshutils 这个软件,但这个软件去年就被标记为 deprecated,实在要装只能手动安装,可以参考openssh - PowerShell OpenSSHUtils - Stack Overflow,而且参考文章 2 中写明不建议装。
另外两种方法:
直接用 gui 修改权限。右键
authorized_keys
-> 属性 -> 安全 -> 高级 -> 禁用继承,在弹出的对话框选择「将已继承权限转换」。然后删掉多余权限,留下 system 和自己目前所用账号的权限就行。使用命令
1
get-acl C:\Users\zbttl\.ssh\authorized_keys | fl
我也不知道哪个好用,因为我几年前从 linux 那边生成的公钥文件貌似没有权限问题。。。
启动
启动服务
1 | Start-Service sshd |
记得登录的是用户名不是 root 而是当前微软账号或者微软本地用户名。