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 配置文件(长期配置)
- 编辑 SSH 配置文件:bash
nano ~/.ssh/config - 添加以下内容(示例配置):config
Host custom-host-alias # 自定义主机别名 HostName github.com # 实际仓库主机地址 User git # Git 用户名 IdentityFile ~/.ssh/custom_key # 指定私钥路径 - 克隆时使用别名:bash
git clone custom-host-alias:username/repo.git
- 适用场景:长期使用特定私钥,避免每次手动指定。
方法 4:通过 ssh-agent 临时加载私钥
- 启动
ssh-agent(如果未运行):basheval "$(ssh-agent -s)" - 添加私钥到代理:bash
ssh-add ~/.ssh/custom_key - 直接克隆:bash
git clone user@host:repo.git
- 说明:
ssh-agent会管理已加载的私钥,Git 自动使用。 - 适用场景:临时使用私钥,避免硬编码路径。
注意事项
- 私钥权限:bash
chmod 600 ~/.ssh/custom_key # 确保私钥权限为 600 - Windows 路径:
- 使用绝对路径(如
C:/Users/User/.ssh/custom_key)并用双引号包裹:bashgit clone -c core.sshCommand="ssh -i \"C:\Users\User\.ssh\custom_key\"" user@host:repo.git
- 使用绝对路径(如
选择适合场景的方法即可高效指定 SSH 私钥。