我的 Git 设置在 Linux 上运行良好,但当我尝试在 Windows 下进行设置时(使用 Git for Windows 和TortoiseGit),我不知道将我的私有 SSH 密钥放在哪里(或者更好的是,如何知道ssh
它位于何处)。我在安装适用于 Windows 的 Git 时使用了标准 ssh.exe 选项。如果我允许在服务器上进行密码验证(代替 RSA),则设置运行正常。
答案1
对于 Git Bash
如果您正在运行 msysgit(我假设您正在运行)并且想要运行 Git Bash(我推荐它而不是 TortoiseGit,但我现在更倾向于 CLI 而不是 GUI),您需要通过启动它然后输入pwd
(在 Windows 7 上,它将类似于C:\Users\phsr
我认为的内容)来确定 Git Bash 的主目录是什么。当您在 Git Bash 中时,您应该mkdir .ssh
。
有了主目录和.ssh
其下的文件夹后,您需要打开 PuTTYgen 并打开之前创建的密钥(.ppk 文件)。打开密钥后,您需要选择Conversions -> Export OpenSSH key
并将其保存到HOME\.ssh\id_rsa
。在该位置获得密钥后,Git Bash 将识别该密钥并使用它。
注意:注释表明这并非在所有情况下都有效。您可能需要将 OpenSSH 密钥复制到Program Files\Git\.ssh\id_rsa
(或Program Files (x86)\Git\.ssh\id_rsa
)。
对于 TortoiseGit
使用 TortoiseGit 时,需要通过以下方式设置 SSH 密钥pacey 的指示。您需要对每个使用 TortoiseGit 的存储库执行此操作。
答案2
使用 Windows 版 Git 附带的内置 SSH 客户端,您需要设置 HOME 环境变量,以便 Git SSH 客户端可以找到密钥。
例如,在Windows Vistasetx HOME c:\Users\admin\
安装,这可以通过在命令行上发出来完成。
这让我很开心,并且解决了 Git 的问题(前提是您的私钥不受密码保护)。如果您想使用 ssh-agent,那么您可能可以像往常一样运行 ssh-agent cmd.exe(尽管我从未这样做过)和 ssh-add。
请注意,所有 Git/SSH 工具都应该从 cmd.exe 运行,以免眨一个窗口。
如果这不能正常工作,使用 plink 可能可以通过调整来实现GIT_SSH。请参阅所有 SVN + ssh 教程;这基本上与您需要设置的管道相同。
答案3
您可以通过以下方式指定 TortoiseGit 的密钥位置:
- 打开资源管理器窗口。
- 打开上下文菜单并导航TortoiseGit→设置
- 在现在打开的窗口中,导航至Git→偏僻的
- 在相应的输入框中设置您的PuTTY密钥的路径。
截图如下:
答案4
如果您将 msysgit 与 OpenSSH 工具一起使用,则需要创建,或者创建指向您的密钥的~/.ssh/id_rsa
Git 配置。~/.ssh/config
这是 Bitbucket 的 Git 配置示例,它将使用正确的用户名和除默认密钥之外的其他密钥(以防您为 SSH 连接维护一个密钥,为 Git 帐户维护另一个密钥)。
〜/.ssh /配置:
Host bitbucket.org
Hostname bitbucket.org
User git
IdentityFile /C/keys/yourkey.key
进入 Git Bash 后,您可以运行两个命令将密钥添加到当前会话的 ssh-agent,以避免重复输入密钥的密码。
eval `ssh-agent`
ssh-add /C/keys/yourkey.key