便携式Git和GitHub:SSH密钥

6
我下载了Win32版本的Git便携版,这个版本是一个自解压包。我想能够从任何地方(我的U盘)推送提交记录,但是我不知道如何使用不在用户/用户名/.ssh中的公钥。如何配置Git自动使用其他目录中的密钥?
(我可以在其他目录中生成密钥,但是Git会自动发送位于c:/users/me/.ssh中的密钥)
注意:我正在使用Win32!而不是Linux或OSX!
3个回答

6

Msysgit将会使用位于%HOME%/.ssh的公钥/私钥。

默认情况下,msysgit将HOME定义为C:\users\USERNAME,但是您可以自由定义HOME为任何路径。

只需定义一个用户环境变量 'HOME',然后所有的shell/DOS会话都会继承这个新值。


太棒了。我会把它放在运行cmd的.bat文件开头。它起作用了!非常感谢! - Miles

1

你可以将你的目录添加到~/.bashrc或者~/.bash_profile中。另外,你也可以尝试更改用户的主目录。


我该怎么加呢?-Git Bash无法访问我想使用的文件夹(实际上,它似乎对Git文件夹的访问也有限制)。我应该如何使用Git命令行添加这个目录? - Miles
那些文件在哪里(它们是文件夹吗)?我已经查看了C:/Git、C:/Git/bin、G:/Git、G:/Git/bin、C:/users/me/. - Miles
抱歉,我估计你正在使用Linux或MacOS。很抱歉,我不知道Windows的情况。:( - Fatih Acet
抱歉我没有告诉你。我会将它添加到问题中。 - Miles

0

修改 core.sshCommand 对我起了作用。

这背后的想法是通过ssh命令的-i选项显式设置密钥文件的路径:

git config --system core.sshCommand  "ssh -i /d/keys/key.openssh"

我还添加了我的用户名 - -l username,因为我在连接到的所有服务器上都使用相同的用户名,并且我没有在git remote地址中指定它。

请记住,路径应该按照Unix方式给出,上面的路径实际上是D:\keys\key.openssh

注意:便携式Git将其系统范围的设置存储在mingw64/etc/gitconfig文件中。


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