VSCode 配置远程 Ssh 免密登录
引言
经历过远程开发的人都知道 VSCode 的 VS Code Remote 是一个非常好用的插件,这个插件使得开发者可以在容器,物理或虚拟机,以及 Windows Subsystem for Linux (WSL) 中实现无缝的远程开发。
而在此之前的远程开发呢,比如我的导师,一个资历较老的开发人员了。他进行远程开发的方式是通过在本地 Source Insight 阅读和修改代码,使用 samba 管理服务器的文件,再通过将修改的文件与远程服务器上的文件进行替换的方式,实现远程代码编写。这个方式在今天来说效率已经相较颇低了。
下面我引用一篇别人写的安装设置 remote-ssh 的博客(以分割线来进行划分),来略过重复的这一部分讲解,本篇只着重对免密这一部分进行探讨。
这是原博客:vscode 设置 remote-ssh 并免密登录
设置 remote-ssh 博客引用
1、在 VSCode 中安装 Remote - SSH 插件

2、使用 Remote - SSH 远程登录 ssh

这是远程 ssh 信息的编辑界面:

Host:是这个 ssh 信息在你本地的显示内容(这个可以修改自己能够区分的信息,因为后面往往并不是只有一台服务器)。HostName:是远程服务器的 ip 地址或者域名。User:是远程服务器的登录用户名。Port:是远程服务器的 ssh 端口号,默认是 22。
3、设置免密登录
在本机和远程主机上配置相同内容的 id_rsa 和 id_rsa.pub,在远程主机上执行:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
sudo chmod 600 authorized_keys
service sshd restart
补充-新系统迁移git
当我们换新机又不想重新生成新的密钥公钥时,就需要将原来的 id_rsa 和 id_rsa.pub,迁移到新系统。
首先将旧系统的 .ssh 目录直接复制到新系统的(Windows: C:\Users\xxx, linux: ~/)目录下。
此外还需要迁移位于用户目录下的全局配置文件 .gitconfig 文件,直接将该文件复制到新系统的用户目录下即可。
最后再补充一点,8.8p1 版的 openssh 的 ssh 客户端默认禁用了 ssh-rsa 算法, 但是对方服务器只支持 ssh-rsa, 当你不能自己升级远程服务器的 openssh 版本或修改配置让它使用更安全的算法时, 在本地 ssh 需要针对这些旧的 ssh server 重新启用 ssh-rsa 。
编辑用户 ssh 配置 ~/.ssh/config, 对于无法成功连接的host, 增加配置项:
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
结语
通过以上配置,我们就可以使用 VSCode 进行远程开发,并且实现免密登录,大大提高了开发效率。希望这篇文章对你有所帮助,祝你编码愉快!
🌟 欢迎留下您的评论和想法!