vscode remote 到 windows
-
资料来源:
https://zhuanlan.zhihu.com/p/122999157
https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse更新
1
2021.08.30 初始
导语
最近需要偶尔从外面连回实验室电脑,但是因为重装系统缘故,目前的 host 的系统是 win.
首先尝试了 rdp 远程桌面,本来到实验室就需要中转,卡的要死.既然现在的开发环境都是 vscode 一把梭子,何不尝试 ssh ?或者 win 支持这样吗?
vscode remote 到 windows
实际上流程与配置 vscode remote 到 linux 主机完全一样.
- 配置 host win 系统的 ssh 服务端
- 配置本地机器的 ssh 客户端
- 剩下的交给 vscode.
配置 windwos ssh 服务端
得益于微软这些年的拥抱开源,win10 在 1809 之后内置了完整的 openssh 支持.\
首先要安装 openssh
设置 -> 应用 -> 功能 安装 openssh 客户端 + openssh 服务器.openssh 会执行一个
OpenSSH-Server-In-TCP
的服务,允许 ssh tcp 22 端口的入栈流量.如果嫌弃图形界面,还可以用 powershell 安装powershell 管理员运行
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
,如果未安装会返回State : NotPresent
.这里是安装两者的命令
1
2
3
4
5# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
配置 openssh 服务器,又是 powershell 管理员命令
Start-Service sshd
: 启用 sshd serviceSet-Service -Name sshd -StartupType 'Automatic'
: 配置 sshd service 自动启动Get-NetFirewallRule -Name *ssh*
: 确认是不是存在 ssh 相关的防火墙规则.New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
: 如果上一步不存在 ssh 相关防火墙规则,即执行这一步创建防火墙规则.
win ssh 连接
ssh [email protected]
😂.
通过代理连接 ssh,win 下要折腾一点(假设是 127.0.0.1:1080)
- 在 git for windows 在
X:\Program Files\Git\mingw64\bin
找到 connect - ssh config 配置加入
ProxyCommand connect.exe -S 127.0.0.1:1080 %h %p
配置 win ssh key
这个过程和配置 linux 下 key 登录基本相同.
生成密钥等不加赘述.
不同的是 win 下没有 ssh-copy-id
命令,需要手动把公钥拖到 host.
把公钥内容粘贴到 ~/.ssh/authorized_keys
文件,不存在则创建.
编辑 C:\ProgramData\ssh\sshd_config
注释掉最后两行.
1 | #Match Group administrators |
确保 C:\ProgramData\ssh\sshd_config
下面都是 yes,没有则添加.
1 | PubkeyAuthentication yes |
ssh-key 客户端配置文件,不再赘述.
vsc remote
基本上是打开 remote-ssh 之后选择主机类型 windows ,一切 ok !
结束语
和 ssh 到 linux 几乎没啥区别.不过有时还是会遇到延迟较大,需要重启远程机器的情况,总体良好.