欢迎光临
我们一直在努力

SSH秘钥详解及VSCode免密码配置流程

在日常开发中,经常遇到需要SSH免密码连接的情况——不管是远程连接服务器写代码,还是连接GitHub提交代码,每次输入密码不仅繁琐,还存在安全隐患,有些集群服务器还需要用客户端账号登录,根本不知道节点上的密码。而使用SSH密钥,就可以实现服务器、GitHub的免密码无缝连接。

一、SSH免密码连接核心原理

SSH(Secure Shell)是一种加密的网络传输协议,核心作用是“安全地远程登录/传输数据”。默认情况下,SSH采用“密码登录”:需要输入服务器/GitHub的账号密码,服务器/GitHub验证通过后,才能建立连接。

而“免密码登录”,本质是用「密钥对」替代了“账号密码”,实现“身份自动验证”,整个过程无需手动输入密码,且加密级别更高。

简单类比:SSH密钥对就像家里的“钥匙和锁”——公钥是“锁”,可以放心交给服务器/GitHub;私钥是“钥匙”,只放在自己的电脑上,绝对不能泄露。当你发起连接时,电脑会用私钥“解锁”服务器/GitHub上对应的公钥,验证通过后直接建立连接,全程自动化。

二、私钥与公钥:分工明确,缺一不可

SSH密钥对由 私钥(Private Key) 和 公钥(Public Key) 组成,二者是成对的,生成后无法单独使用,核心分工如下:

1. 公钥(Public Key)—— 可公开的“验证锁”

  • 后缀通常是 .pub(比如 id_rsa.pub),内容可以公开,不会有安全风险。

  • 作用:需要放置在你要连接的目标设备上(服务器、GitHub服务器),用于“验证发起连接的设备是否持有对应的私钥”。

  • 举例:把公钥放到GitHub上,GitHub就知道“持有对应私钥的电脑是可信的,可以允许其免密码操作仓库”。

2. 私钥(Private Key)—— 绝对保密的“专属钥匙”

  • 通常没有后缀(比如 id_rsa)。私钥是你的“专属凭证”,必须妥善保管在自己的电脑上,绝对不能泄露给他人、上传到公开仓库。

  • 作用:发起SSH连接时,电脑会自动用私钥“签名”连接请求,目标设备(服务器/GitHub)用对应的公钥验证签名,验证通过就允许连接。

  • 注意:如果私钥泄露,他人可以直接免密码登录你的服务器、操作你的GitHub仓库,风险极高!

核心总结:公钥“存远程”,私钥“存本地”,二者匹配 → 免密码验证通过;不匹配 → 拒绝连接。

三、VSCode配置流程(两大场景:服务器 + GitHub)

配置前准备:

确保你的电脑已安装VSCode,且安装了两个关键插件(打开VSCode,在插件市场搜索安装):

  • Remote – SSH:用于远程连接服务器

  • Git:用于连接GitHub(若已安装Git客户端,可忽略)

另外,需提前生成SSH密钥对(Windows、Mac、Linux操作一致),步骤如下:

  • 打开电脑的终端(Windows用PowerShell,Mac/Linux用终端);

  • 输入命令 ssh-keygen -t rsa(rsa是密钥算法,默认即可);

    • ssh-keygen:核心命令,用于生成 SSH 密钥对(私钥 + 公钥);
    • -t:指定密钥的加密算法类型(t=type);
    • rsa:指定使用 RSA 加密算法生成密钥对(默认算法,兼容性强)。
    • 常用 SSH 加密算法(替换 / 补充 rsa):
    • RSA:最常用,兼容性好(支持所有 SSH 版本),密钥长度默认 2048 位(可通过 -b 4096 增加长度提升安全性);
    • ED25519:新一代算法,加密速度快、安全性更高,密钥长度短(仅 256 位),适合现代设备;
    • ECDSA:基于椭圆曲线加密,密钥短、效率高,但兼容性略逊于 RSA。
  • 连续按3次回车(无需输入密钥保存路径,默认存放在用户目录下的 .ssh 文件夹;无需设置密码,设置后反而需要输入密钥密码,失去免密码意义)。

  • 生成成功后,进入 .ssh 文件夹(路径:Windows C:\\Users\\你的用户名\\.ssh;Mac/Linux ~/.ssh),会看到两个文件:id_rsa(私钥)、id_rsa.pub(公钥)。这两个文件都是文本文件,可以用写字板打开查看内容。

  • 场景1:VSCode免密码连接服务器

    前提:你已拥有服务器的IP地址、登录账号(比如root),且服务器已开启SSH服务(大多数Linux服务器默认开启)。

  • 第一步:复制公钥内容 在本地的 .ssh 文件夹下,找到公钥文件,比如 id_rsa.pub ,完整复制 id_rsa.pub 里的所有字符

  • 第二步:将公钥上传到服务器

    • 服务器上公钥的默认路径一般在登录账号的 home目录下的 .ssh 文件夹内,核心文件为 authorized_keys,完整路径: 若登录账号为 root:/root/.ssh/authorized_keys 若登录账号为普通用户(如 user):/home/user/.ssh/authorized_keys 使用编辑器打开 authorized_key 文件,在该文件中添加公钥。

    • 已有其他人公钥时,添加规则: 直接将你的公钥内容追加到 authorized_keys 文件末尾; 每行仅放一个公钥,不同公钥之间用换行分隔(不要合并到同一行,否则会导致所有公钥失效); 必须保证文件权限正确:~/.ssh 文件夹权限为 700,authorized_keys 文件权限为 600(权限过高 / 过低会导致 SSH 验证失败)。

  • 第三步:VSCode配置远程连接

    config设置:

    Host 服务器别名(自定义,如MyServer)
    HostName 服务器IP地址(如192.168.1.100)
    User 服务器登录账号(如root)
    IdentityFile 本地私钥完整路径(如C:\\Users\\你的用户名\\.ssh\\id_rsa)

  • 第四步:免密码连接服务器

    使用vscode远程连接,检查是否还需要密码。如果仍然需要密码,说明配置有问题。检查本地的私钥权限是否有问题,详细方法可以参考我的另一篇博客:vscode ssh远程连接服务器问题汇总

  • 场景2:VSCode连接GitHub,免密码提交/拉取代码

    前提:你已拥有GitHub账号,且本地已初始化Git仓库(若未初始化,可先在终端执行 git init)。

  • 第一步:将公钥添加到GitHub

  • 第二步:VSCode配置Git(关联GitHub)

  • 第三步:免密码操作GitHub

  • 赞(0)
    未经允许不得转载:171主机测评 » SSH秘钥详解及VSCode免密码配置流程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址