张芷铭的个人博客

SSH 基于密钥对免密鉴权,HTTPS 基于令牌灵活鉴权,长期开发选 SSH,受限环境选 HTTPS。

核心差异

维度SSHHTTPS
默认端口22443
鉴权方式密钥对(非对称加密)用户名 + PAT
配置成本需生成密钥、上传公钥无需额外配置
网络兼容性22 端口可能被封443 通用端口,几乎无限制
安全性私钥本地存储,安全性高PAT 是字符串,泄露风险较高
权限粒度密钥绑定账户全部权限PAT 可设置单仓库、只读等细粒度权限

SSH 鉴权

流程

  1. 本地生成密钥对:ssh-keygen
  2. 上传公钥到 Git 平台
  3. 通信时私钥签名,公钥验证

优势:配置后免重复输入凭证 劣势:密钥绑定账户,无法限制单仓库权限

HTTPS 鉴权

主流平台已禁用密码,改用 PAT(Personal Access Token)

  1. 平台生成 PAT,指定权限和过期时间
  2. 首次操作输入「用户名 + PAT」
  3. Git 凭据助手缓存凭证

安全提醒:不要将 PAT 拼在 URL 中(如 https://user:token@gitlab.com/xxx),否则会记录在日志中导致泄露。

场景选择

优先 SSH

  • 个人长期开发设备
  • 对安全性要求高
  • 无端口限制

优先 HTTPS

  • 临时/公共设备
  • 企业内网封禁 22 端口
  • 需细粒度权限控制(单仓库只读)

安全规范

SSH 密钥

  • 私钥设置密码
  • 定期更换密钥

HTTPS PAT

  • 不将 PAT 拼在 URL 中
  • 设置最小必要权限和最短过期时间
  • 泄露后立即吊销

通用

  • 不在公共设备保存私钥或 PAT
  • 定期清理已授权凭证

Comments