参考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

  1. 打开"设置->应用->可选功能->添加功能", 搜索SSH, 将SSH服务器SSH客户端都安装.
  2. 文章要求装完重启,但好像不重启也可以. 在C:\windows\system32\OpenSSH目录下就会安装ssh的相关文件, 包括sshd.exe, 可以直接运行sshd就开启服务,也可以按文章的介绍在服务中开启.
  3. 运行菜单services.msc, 查看OpenSSH SSH server项, 双击, 选择登录页面,查看或修改可以登录的用户. 设置服务为自动并开启运行.
  4. 打开一个cmd,运行ssh-keygen -A生成服务端key, 默认生成的位置在C:\ProgramData\ssh. 这儿还存放sshd_config文件, 如果没有就创建一个.
  5. 运行ssh-keygen ,生成本地ssh keyid_rsaid_rsa.pub,位置在C:\Users\username/.ssh/,这儿还存放authorized_keys. authorized_keys就是其他客户端的pub key的集合
  6. 在客户端运行ssh-keygen ,生成本地ssh keyid_rsaid_rsa.pub, 将id_rsa.pub复制一份改名为authorized_keys到服务端的C:\Users\username/.ssh/目录
  7. 设置服务端开启哪个命令行, 可以在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

标签: none 阅读量: 4341

仅有一条评论

  1. yyx_dev

    如果想要ssh免密登录的话,必须要把 C:\ProgramData\ssh\sshd_config 文件里的最后两行关于管理员级的免密配置注释掉,接着重启ssh服务。
    当然别忘了拷贝公钥。

添加新评论