VSCode Remote-SSH
VSCode:windows客户端远程linux服务器进行代码开发
-
环境准备
windows客户端:安装和启动ssh服务,VSCode编辑器及Remote-SSH插件
Linux客户端:安装和启动sshd服务
-
远程开发配置
VSCode安装完Remote-SSH插件后配置
SSH configuration file
,如下:# Read more about SSH config files: https://linux.die.net/man/5/ssh_config Host 192.168.1.129 # ssh时的替代名 HostName 192.168.1.129 # 服务器IP或域名 User admin # 登录用户名 # 一般配置前三项即可 Port 22 # 端口号, 默认为22 IdentityFile ~/.ssh/id_rsa # 私钥文件路径 UserKnownHostFile ~/.ssh/known_hosts # 用来缓存通过认证的远程主机的密钥
至此可以使用VSCode Remote-SSH登录Linux服务器进行代码开发,但每次登录或重启窗口均需要输入密码,可以设置免密登录。
-
免密登录配置
(1) windows
git bash
或cmd
窗口下执行ssh-keygen -t rsa
生成密钥对id_rsa, id_rsa.pub
;(2) 将生成的公钥文件
id_rsa.pub
拷贝至Linux服务器的~/.ssh
目录下,并重命名为authorized_keys
;也可以通过ssh-copy-id
命令拷贝公钥,如下:# 拷贝公钥文件id_rsa.pub至Linux服务器, 自动重命名为authorized_keys ssh-copy-id -i ~/.ssh/id_rsa.pub admin@192.168.1.129
重启VSCode窗口时就可以通过密钥远程免密登录Linux服务器。
-
问题总结
(1) Linux服务器网络不通时需手动下载
vscode-server
vscode-server
下载地址:https://update.code.visualstudio.com/commit:$commit_id/server-linux-x64/stable
其中: $commit_id为
vscode-server
的commit版本号, windows远程连接失败时可查看commit版本号ps: 本地VSCode更新时,
vscode-server
需要更新至对应版本(2) Remote-SSH时报错
It is also possible that a host key has just been changed. >The fingerprint for the ECDSA key sent by the remote host is SHA256:...
原因:ssh将每个通过认证的远程主机的公钥均缓存至
~/.ssh/known_hosts
文件中,当再次ssh访问时会核对公钥,若不同则产生上述警告信息。解决方法:删除windows客户端
~/.ssh/known_hosts
文件中该远程主机IP相关的rsa信息即可。(3) 免密登录配置时,windows客户端通过
ssh-keygen
命令生成密钥时尽量使用git bash
窗口而不是cmd
窗口,有时通过cmd
窗口执行ssh-keygen
命令生成的密钥设置免密登录失败,具体原因未知。