在 Windows 上配置微软自带的 OpenSSH 服务器(并配置 pubkey 以进行身份认证和 DefaultShell)
Table of Contents
这,就是微软
你现在有一台全新安装的 Windows 计算机(Windows 10 某个版本以上)。
- 在设置的
应用 -> 应用和功能
中查找可选功能
并安装OpenSSH 服务器
,安装完成之后在服务中启动:Start-Service sshd
- 在较新版本的系统中直接在
系统 -> 可选功能
中就可发现。
-
准备好你的
authorized_keys
文件。注意它必须是UTF-8
格式 ———— 如果你使用 PowerShell 进行公钥文件内容的写入,需要 指定所使用的编码 。不然之后可能会出现:debug3: mm_answer_keyallowed entering debug3: mm_answer_keyallowed: key_from_blob: 0000023B443DEBC0 debug1: trying public key file C:\\Users\\nemo/.ssh/authorized_keys debug2: C:\\Users\\nemo/.ssh/authorized_keys:1: check options: '\377\376s' debug2: C:\\Users\\nemo/.ssh/authorized_keys:1: advance: '' debug3: mm_answer_keyallowed: publickey authentication: RSA key is not allowed Failed publickey for nemo from 192.168.42.20 port 59924 ssh2: RSA SHA256:KHuJelvRiIwx1C9mlrm1pBD11cgHFuW4lvsYT8zuIJk debug3: mm_request_send entering: type 23 ... debug3: mm_answer_keyallowed entering debug3: mm_answer_keyallowed: key_from_blob: 0000023B443DE7D0 debug1: trying public key file C:\\Users\\nemo/.ssh/authorized_keys debug2: C:\\Users\\nemo/.ssh/authorized_keys:1: check options: '\377\376s' debug2: C:\\Users\\nemo/.ssh/authorized_keys:1: advance: '' debug3: mm_answer_keyallowed: publickey authentication: ED25519 key is not allowed Failed publickey for nemo from 192.168.42.20 port 59924 ssh2: ED25519 SHA256:kqIfo5LYdYJc3rvTwOM8vVNJ8DhHl/6BSwOqNcsH6Fc debug3: mm_request_send entering: type 23
-
参照 这里 继续进行配置。对于管理员组用户,若是不喜欢在
$Env:ProgramData\ssh\
下放置你的公钥文件,可以将其中sshd_config
的如下内容注释:Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
当然,有人对微软的这个做法提出了 质疑。
- 修改完配置文件别忘了
Restart-Service sshd
- 修改完配置文件别忘了
-
进行 DefaultShell 的 设置:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShellCommandOption -Value "/c" -PropertyType String -Force
其中的
powershell.exe
当然也可以换成别的。 -
你已经可以准备摇滚了!