首先为什么会有要这么做?
前几天开发都是修改BUG都是在生产环境直接操作的,这样会有个严重问题就是当修改的代码有BUG,会对用户访问生产环境的服务造成很大的影响,所以就想着搭建了一个测试环境用于开发,这个测试环境的ip有点特殊,被运营商特别照顾了,直接连接不了,所以只能上跳板来在本地访问
vscode已经很好的集成了github copilot这对于开发者来说非常方便的调试代码,我放弃了之前的利用sftp和web端的文件编辑方式,准备在本地利用vscode通过remote ssh服务来开发
vscode安装remote ssh扩展以后,在本地配置文件按照下面的格式进行配置:
# 配置跳板机
Host jump-server
HostName 跳转机器ip
User root
Port 22
IdentityFile ~/.ssh/tecent_id_rsa # 你的私钥路径
IdentitiesOnly yes # 强制只使用指定的密钥
ServerAliveInterval 60
# 配置目标服务器,指定通过跳板机连接
Host 目标机器ip
HostName 目标机器ip
User root
ProxyJump jump-server
Port 22
IdentityFile ~/.ssh/tecent_id_rsa
IdentitiesOnly yes
ServerAliveInterval 60
不论是跳板机还是目标机器都将ssh配置成免密登录模式,在配置免密登录时踩了一个坑就是,我的公钥是本地利用私钥自己通过putty gen生成的RFC 4716格式文件,但 SSH 服务器需要的标准格式是 OpenSSH 格式(以 ssh-ed25519 或 ssh-rsa 开头)。

在windows powershell命令行通过以下转换命令重新生成新的公钥文件:
ssh-keygen -y -f tecent_id_rsa > tecent_id_rsa.pub
注意:这个需要在你的私钥目录下转换
重复之前的步骤将新的公钥配置到跳板机和目标机器即可。
以上操作完成以后即可实现SSH免密登录了!

最后于 1月前
被Roogle编辑
,原因: