切换主题
字数
785 字
阅读时间
4 分钟
vpn, 先确保git能访问到远程仓库的服务器 应该使用 https 链接,但是错误的使用了 ssh 的链接 用 https 操纵 远程仓库时, 不需要 ssh密钥 tortoisegit和git用的ssh私钥格式不一样, TortoiseGit 默认使用 PuTTY 格式(.ppk
),而 Git 默认使用 OpenSSH 格式(id_rsa
)。这两不通用
比如雄安云的git仓库中, .git/config:
config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://gitlab.ixayun.com/ixayun/hrmsc-web.git
fetch = +refs/heads/*:refs/remotes/origin/*
puttykeyfile = C:\\Users\\scz_meowr15\\Desktop\\putty_key\\3.ppk
[branch "master"]
remote = origin
merge = refs/heads/master
puttykeyfile 代表密钥的地址, url 代表远程仓库地址, 即使 用来 密钥也未必是 ssh 链接方式,如果更改为一下配置
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = ssh://git@gitlab.ixayun.com:1022/ixayun/hrmsc-web.git
fetch = +refs/heads/*:refs/remotes/origin/*
puttykeyfile = C:\\Users\\scz_meowr15\\Desktop\\putty_key\\3.ppk
[branch "master"]
remote = origin
merge = refs/heads/master
就会出错 在 Git 中,用户配置分为三种级别:
- 全局用户配置:对所有 Git 仓库生效。
- 本地用户配置:仅对当前仓库生效。
- 系统级别配置:对整个系统的 Git 配置生效(通常很少使用)。
直接在 Git 配置文件 (.git/config
) 中添加 IdentityFile
是无效的,因为 Git 的本地配置文件不支持直接设置 SSH 私钥文件的路径。IdentityFile
是 OpenSSH 配置文件中的指令,不能在 Git 的配置文件中使用。
项目的 Git 本地配置中可以使用 core.sshCommand
来指定 SSH 命令和私钥路径。
git config core.sshCommand "ssh -i ~/.ssh/你的openssh si钥 -o IdentitiesOnly=yes"
可以在 .git/config 中添加一条配置, 最终使配置文件成为以下代码块的样子
ini
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
sshCommand = ssh -i ~/.ssh/你的openssh私钥 -o IdentitiesOnly=yes
[remote "origin"]
url = git@github.com:你的仓库.git
fetch = +refs/heads/*:refs/remotes/origin/*
puttykeyfile = 你的putty密钥文件.ppk
[branch "main"]
remote = origin
merge = refs/heads/main
vscode-merge-base = origin/main
[user]
email =你的邮箱@example.com
name = 你的名字
sshCommand
是 Git 提供的一种配置项,用来指定 Git 在执行 SSH 相关操作时(如 git clone
、git pull
、git push
等)使用的 SSH 命令。通过这个配置项,你可以自定义 Git 在连接远程仓库时使用的 SSH 参数,比如指定特定的 SSH 私钥、启用某些 SSH 选项等。
通常,Git 默认使用系统的 SSH 配置(~/.ssh/config
和默认的 SSH 密钥)。但是,如果你想为某个特定项目使用自定义的 SSH 设置,sshCommand
是一种非常方便的方式。
你如果在使用TortoiseGit请注意, TortoiseGit 默认使用 PuTTY 格式(.ppk
),而 Git 默认使用 OpenSSH 格式(id_rsa
)。这两种格式不是直接互通,需要转换
PuTTY 格式的私钥的位置可以直接在 puttykeyfile 后面指定
作者:电平逻辑
链接:https://juejin.cn/post/7425653740106924047
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
贡献者
sunchengzhi