介绍一下通过公钥私钥实现的 vscode remote 免密登录,顺便推荐一下我自己在用的“快捷”方法

@teapot1de February 23, 2025

用 (cursor)vscode remote 完成免密配置的 具体步骤 :

  1. 在本地(你的MacBook)生成公钥和私钥

    1. 注意别给密钥设置密码,不然你到时候还要输密码,就没做到免密
  2. 下载 vscode , 并且配置 vscode remote 插件

  3. 把公钥存在服务器上(跳板机)以及你的目标服务器 (192.168.1.72)上

    1. 确切的说是要写入你需要登录的账户的 ~/.ssh/authorized_keys 文件里面
    2. 并且要给 authorized_keys 充足的权限
  4. 在remote ssh 配置文件 config 里面写好节点配置

    image.png

    配置可以参考:

    Host Jumper # 节点名称
        HostName 222.204.6.193 # 跳板机的 ip
        User asc24 # 登录的账号
        Port 8087 # 必须使用 8087 端口登录跳板机,如果你是 Goodlab 的,我们实验室是这样的
        # 其他网络(外网),用8087端口 
        # Port 8087 
        IdentityFile "C:\\Users\\86137\\.ssh\\id_rsa_tea"
    
    Host goodlab-72  # 节点名称
        HostName 192.168.1.72 # 节点的 ip
        User root # 登录的账号
        Port 22 # ssh 连接的端口
        IdentityFile "C:\\Users\\86137\\.ssh\\id_rsa_teajumper" # 你local的私钥的地址
        ProxyCommand ssh -W %h:%p Jumper # ProxyCommand 是 SSH 配置中的一个选项,用于指定如何连接到目标主机的代理命令。它允许你通过一个中间主机(通常称为跳板机或跳跃主机)来访问目标主机。有兴趣可以自己在多搜索一下。
    

    整个流程的细节可以参考下面这篇知乎文章↓ 这篇文章的截图细节更足

而在平时日常使用过程中,部署过程中,把公钥写入其他服务器这一步往往让人觉得有些麻烦,因为我们连接的服务器往往不止一台,为了彻底简化这个流程,我想实现一行命令就完成写入:

命令也很简单,如下


git clone <https://gitee.com/ywh555hhh/pubrsa> && sh pubrsa/rsa_setup.sh

内容也十分简单:

git clone 下我存在 gitee 的公共仓库,cd 到这个 仓库里面,运行 仓库里的脚本

  1. git clone 我存在 gitee 的公共仓库
  2. 运行仓库里的脚本

这里脚本里做的事情也很简单:

  1. 判断是否在用户目录下有 .ssh 文件夹,如果没有就创建
  2. 把我的 公钥写入 .ssh 文件的 authorized_keys 文件