前言
每次推送代码都要输入用户名和密码,既繁琐又不安全。这篇就来聊聊如何通过 SSH 协议实现免密安全访问远程仓库。
为什么选择 SSH 协议?
Git 支持多种数据传输协议,主要包括:
- 本地协议(Local) :适用于本机或局域网内的仓库操作
- HTTPS 协议:最通用,但每次操作需输入凭证
- SSH(Secure Shell)协议:基于密钥对验证,免密且安全
- Git 协议:仅支持读取,不常用
划重点: SSH 通过加密通道实现远程仓库的安全访问,采用基于密钥对的验证机制,无需频繁输入用户名和密码,特别适合高频的仓库操作场景。
前提条件 :SSH 协议依赖密钥验证方式,因此需要预先创建一对密钥(公钥与私钥) ,并将公钥部署至目标服务器。
配置 SSH 协议
生成公钥和私钥
在任意目录下,右键打开 Git Bash 终端,执行以下命令生成密钥对:
bash
ssh-keygen
# 或指定算法和注释
ssh-keygen -t rsa -C '843766158@qq.com'
代码解析:
-
ssh-keygen:Git 自带的密钥生成工具,默认生成 RSA 密钥对 -
-t rsa :指定算法为 RSA,-C后跟注释(通常是邮箱)
生成过程中,系统会提示设置文件保存路径及密码;若无需额外保护,可直接按回车采用默认配置(即不设置密码)。
密钥生成后,可在 C:\Users\<用户名>\.ssh 目录下找到以下文件:
id_rsa:私钥(务必妥善保管,切勿外泄)id_rsa.pub:公钥(可安全上传至代码托管平台)
配置 Gitee 与 GitHub
使用记事本打开 id_rsa.pub 公钥文件,复制其中的全部内容,然后将其添加至 Gitee 或 GitHub 的 SSH 公钥管理页面。
Gitee 配置示例:

测试 SSH 连接
执行以下命令,验证本机是否已成功通过 SSH 连接至 Gitee:
bash
ssh -T git@gitee.com
同样地,可通过以下命令测试与 GitHub 的连接:
bash
ssh -T git@github.com
常见坑:22 端口连接被拒绝
若默认的 22 端口连接被拒绝,可尝试通过以下步骤进行配置调整:
-
创建 config 文件 :在
C:\Users\<你的用户名>\.ssh 目录下,新建一个名为config的文件(注意:无文件后缀名)。 -
添加配置内容:使用文本编辑器打开该文件,并添加以下配置:
bashHost github.com User 843766158@qq.com Hostname ssh.github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa Port 443 -
重新测试连接 :保存文件后,重新执行测试命令
ssh -T git@github.com。 -
确认主机真实性 :首次连接时,系统可能会弹出主机真实性确认提示,输入
yes并回车即可继续:
bash
The authenticity of host '[ssh.github.com]:443 ([192.30.255.123]:443)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[ssh.github.com]:443,[192.30.255.123]:443' (RSA) to the list of known hosts.

复制 SSH 仓库地址
在代码托管平台(如 Gitee、GitHub)上,选择 SSH 克隆方式,复制对应的 SSH 仓库地址,即可用于本地克隆或远程关联。

小结
- SSH 协议 通过密钥对实现免密安全访问,核心机制是公钥加密 + 私钥解密
- 密钥生成 只需一条
ssh-keygen命令,私钥务必妥善保管 - 连接测试 使用
ssh -T命令验证,22 端口被拒时可改用 443 端口
总结
随着 Git 在开发流程中的普及,SSH 协议已成为远程仓库操作的标准配置。本文演示了如何从零配置 SSH 协议,实现免密安全访问 Gitee 和 GitHub。
本质上就是一对密钥 配合平台公钥配置,构建出安全的免密连接通道。SSH 配置并不复杂,业界主流代码托管平台均基于此原理。