在执行git push时避免使用弹出窗口询问用户名

时间:2012-08-20 09:48:22

标签: git ssh cygwin msysgit tortoisegit

我的Windows机器上安装了Cygwin,msysgit和TortoiseGit。我正在为Cygwin编写一个脚本,它通过ssh对远程机器进行git推送:

git push ssh://host/path/to/git master:master

此时,会出现一个弹出窗口并询问我要用于SSH的用户。如果我键入一个用户,那么我会得到第二个弹出窗口,询问我该用户的密码。现在,我有两个问题:

  1. 该用户使用密钥对进行身份验证,因此没有密码。弹出窗口不允许我指定私钥。
  2. 我编写脚本的原因是为了避免重复编写用户名和私钥位置等普通内容,因此我希望能够将用户名和私钥文件的路径传递给命令行(或者可能是配置文件)。
  3. 你知道怎么做吗?

2 个答案:

答案 0 :(得分:2)

尝试使用:

ssh://username@host/path/to/git

这将避免弹出窗口要求输入用户名。如果您在.ssh文件夹中正确配置了密钥,则身份验证也可以正常运行。

答案 1 :(得分:1)

使用Windows计算机时,我使用pageant设置私钥并自动将其提供给请求的应用程序。

因此,我必须在每个会话中仅提供一次私钥密码(至Pageant),而不是每次都需要。由于pageant是一个身份验证代理,它适用于所有执行ssh连接的程序(我使用msysgit测试它没有问题)。

请参阅:http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter9.html