我的机器设置如下:windows 7、Git for windows、Git Bash、openSSH 1.6 通过 cygwin 安装。
我按照https://help.github.com/articles/generating-ssh-keys上的说明进行操作
但是每次推送东西时我仍然必须登录。
我想我的设置搞砸了......非常感谢任何帮助。
我的机器设置如下:windows 7、Git for windows、Git Bash、openSSH 1.6 通过 cygwin 安装。
我按照https://help.github.com/articles/generating-ssh-keys上的说明进行操作
但是每次推送东西时我仍然必须登录。
我想我的设置搞砸了......非常感谢任何帮助。
为了能够使用基于密钥的身份验证(而不是 HTTP 基本身份验证),您必须使用 SSH 协议。在 Github 上,URL 如下所示:
git@github.com:username/repository.git
使用密钥身份验证后,您可以使用常用的 SSH 工具来管理连接。这些工具之一是 SSH 代理,它会在加载后解密您的私钥一次,并在运行时将其保存在主内存中。这允许新的 SSH 会话使用此密钥,而不必用密码问题来打扰您。
您可以通过运行将私钥添加到当前 SSH 代理会话
ssh-add /path/to/key
如果您想删除密码并且它让您烦恼,请输入:
ssh-keygen -p
输入旧密码,当要求输入新密码时,将其留空。
我现在让它工作了...起初我从 cygwin 卸载了 ssh 包,因为 git for windows 附带 ssh。
就像 Holger 说的我必须将密钥添加到 ssh-agent 但从 git bash 我无法添加它。它是这样工作的:
eval 'ssh-agen.exe'
ssh-add ~/.ssh/id_rsa
在此之后,我能够在不输入密码的情况下进行推送。剩下的唯一问题是我必须在每次系统重新启动后添加密钥......
任何想法如何解决这一问题?
这些说明适用于 Windows 7 及更高版本。
.bashrc
在您的主目录中命名的文件名(因此完整的文件路径是C:\Users\XYZ\.bashrc
您XYZ
的 Windows 用户名在文件中添加这两行。注意:如果不在,请更改私钥文件的位置 ~/.ssh/id_rsa
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
打开 Git Bash 应用程序,系统会提示您输入密钥密码