windows10 开启ssh服务
参考https://winaero.com/enable-openssh-server-windows-10/#:~:text=Enable%20the%20OpenSSH%20Server%20in%20Windows%2010%201,on%20the%20Install%20button.%205%20Restart%20Windows%2010.
https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
- 打开"设置->应用->可选功能->添加功能", 搜索SSH, 将
SSH服务器
和SSH客户端
都安装. - 文章要求装完重启,但好像不重启也可以. 在
C:\windows\system32\OpenSSH
目录下就会安装ssh的相关文件, 包括sshd.exe
, 可以直接运行sshd就开启服务,也可以按文章的介绍在服务
中开启. - 运行菜单
services.msc
, 查看OpenSSH SSH server
项, 双击, 选择登录
页面,查看或修改可以登录的用户. 设置服务为自动
并开启运行. - 打开一个
cmd
,运行ssh-keygen -A
生成服务端key, 默认生成的位置在C:\ProgramData\ssh
. 这儿还存放sshd_config
文件, 如果没有就创建一个. - 运行
ssh-keygen
,生成本地ssh keyid_rsa
和id_rsa.pub
,位置在C:\Users\username/.ssh/
,这儿还存放authorized_keys
.authorized_keys
就是其他客户端的pub key的集合 - 在客户端运行
ssh-keygen
,生成本地ssh keyid_rsa
和id_rsa.pub
, 将id_rsa.pub
复制一份改名为authorized_keys
到服务端的C:\Users\username/.ssh/
目录 - 设置服务端开启哪个命令行, 可以在powershell里开启, 也可以打开
regedit
,New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
当然你也可以改成其他命令行如
cmd
或者bash
,但是如果要使用vscode远程的话必须设置为如上的powershell
总结: 涉及的目录和注册表有以下几项:
软件安装目录: C:\windows\system32\OpenSSH
服务key存放目录: C:\ProgramData\ssh
用户Key存放目录: C:\Users\username/.ssh/
服务名: OpenSSH SSH Server, 或 sshd
注册表项: HKLM:\SOFTWARE\OpenSSH, DefaultShell
如果想要ssh免密登录的话,必须要把 C:\ProgramData\ssh\sshd_config 文件里的最后两行关于管理员级的免密配置注释掉,接着重启ssh服务。
当然别忘了拷贝公钥。