乌龟Git和Pageant,每次都要“添加密钥”

21

背景:我正在使用git和TortoiseGit与github.com一起工作。我的本地.git分支的开发流程如下:

1) Make whatever changes
2) Right-click on directory, choose "Git Commit -> branch"
3) Input the message and commit
4) Right-click on same directory, choose "Git Push"
5) I choose my options and...

每天第一次这样做时,Pageant会在后台自动加载并在系统托盘中显示其图标。但它没有记住前一天(或重新启动之前)我先前加载的private.ppk。

每次我都需要:

Right-click -> "Add key" -> and then redo 4) and 5) above

然后它就会起作用。我创建了一个手动图标/快捷方式,我可以点击它自动加载:

"C:\Program Files\TortoiseGit\bin\pageant.exe" c:\path\to\private.ppk
而且如果我使用该快捷方式启动,它会将密钥加载到内存中并正常工作。
问题:如何让TortoiseGit记住或传递“c:\path\to\private.ppk”参数给pageant,以便当它自动加载第一次时,它也自动加载我的私钥?
是否有持久设置可用? 提前致谢! :-)

如果在使用Tortoise SVN之前加载了带有密钥的Pageant,它会要求您提供任何信息吗? - Mat
这是Tortoise Git,而不是SVN,但是如果我手动提供“c:\path\to\private.ppk”命令行预加载,那么它就可以工作。 - Rick Hodgin
1
只需在您的启动配置文件中预加载Pageant(带有.cmd)。 - Mat
难道没有办法让TortoiseGit自动处理这个吗?它会自动启动pageant,所以传递一个参数肯定不是不可能的。也许我有一个新项目可以贡献(添加此功能)。 :-) 谢谢,Mat! - Rick Hodgin
你有没有注意到在你提交时,“Git命令进度”窗口会告诉你它已经工作,底部左侧有一个按钮,上面写着“Push”?这并不能解决你的原始问题,但可以加快第四步的速度;-)。 - Jonas Heidelberg
显示剩余2条评论
3个回答

24

我只是在我的“开始菜单”文件夹的“启动”目录中放置了一个带有PPK的pageant.exe快捷方式,这样它可以在Windows启动时自动加载(尽管它也会要求输入密码)。

"C:\Program Files\TortoiseGit\bin\pageant.exe" "D:\Dev\Git Private Key.ppk"


22

如果您知道正确的地方,所有步骤都非常快速和简单:

  1. 在项目文件夹中打开“TortoiseGit > 设置”
  2. 导航至“Git > 远程”
  3. 选择正确的源
  4. “Putty Key” > “…” > 导航到您的 *.ppk 文件
  5. 完成!

或者,您也可以直接在相关的“some_project\.git\config”文件中手动添加一个“puttykeyfile”条目:

[remote "origin"]
    url = git@github.com:some_one/some_project.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    puttykeyfile = C:\\Users\\some_one\\.ssh\\some_one@some.com\\id_rsa.ppk

1
这对我有用,而且似乎是TortoiseGit开发人员想要实现的方式。 - rajb245

0

@Simon East 的说法很正确,将适当的链接加载到启动文件夹中是正确的方法。

对于使用多个密钥、tortoisegitputtypageant 在控制台提示符和资源管理器中的人来说,解决这个问题的另一种方法是在需要时启动pageant(与远程存储库进行交互时)。并且对于每个远程存储库使用适当的密钥。

我为Tortoisegit的ssh客户端编写了包装器,它会检查Pageant,并根据其交互的存储库加载密钥。目前仅针对GitHub repos进行检查和关联密钥,但其他Bitbucket或Gitlabs功能可以添加到源代码中。

这只是为了个人方便而创建,所以请不要太苛刻 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接