Skip to content

Git 克隆指定 SSH 私钥方法总结

在使用 git clone 时,如果需要指定特定的 SSH 私钥(例如非默认路径的私钥),可以通过以下方法实现:


方法 1:通过 GIT_SSH_COMMAND 环境变量(推荐)

bash
GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_key' git clone user@host:repo.git
  • 说明:直接设置 GIT_SSH_COMMAND 环境变量,强制 Git 使用指定的私钥。
  • 适用场景:临时单次克隆操作。

方法 2:通过 -c 参数指定 SSH 命令

bash
git clone -c core.sshCommand="ssh -i ~/.ssh/custom_key" user@host:repo.git
  • 说明:通过 Git 的 -c 参数动态设置 core.sshCommand,指定私钥路径。
  • 适用场景:单次克隆操作,无需提前设置环境变量。

方法 3:通过 SSH 配置文件(长期配置)

  1. 编辑 SSH 配置文件
    bash
    nano ~/.ssh/config
  2. 添加以下内容(示例配置):
    config
    Host custom-host-alias  # 自定义主机别名
      HostName github.com  # 实际仓库主机地址
      User git             # Git 用户名
      IdentityFile ~/.ssh/custom_key  # 指定私钥路径
  3. 克隆时使用别名
    bash
    git clone custom-host-alias:username/repo.git
  • 适用场景:长期使用特定私钥,避免每次手动指定。

方法 4:通过 ssh-agent 临时加载私钥

  1. 启动 ssh-agent(如果未运行):
    bash
    eval "$(ssh-agent -s)"
  2. 添加私钥到代理
    bash
    ssh-add ~/.ssh/custom_key
  3. 直接克隆
    bash
    git clone user@host:repo.git
  • 说明ssh-agent 会管理已加载的私钥,Git 自动使用。
  • 适用场景:临时使用私钥,避免硬编码路径。

注意事项

  1. 私钥权限
    bash
    chmod 600 ~/.ssh/custom_key  # 确保私钥权限为 600
  2. Windows 路径
    • 使用绝对路径(如 C:/Users/User/.ssh/custom_key)并用双引号包裹:
      bash
      git clone -c core.sshCommand="ssh -i \"C:\Users\User\.ssh\custom_key\"" user@host:repo.git

选择适合场景的方法即可高效指定 SSH 私钥。

Released under the MIT License.