1

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

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

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

  1. 该用户使用密钥对进行身份验证,因此它没有密码。弹出窗口不允许我指定私钥。
  2. 我编写脚本的原因是为了避免重复编写用户名和私钥位置等平凡的事情,所以我希望能够将用户名和私钥文件的路径传递给命令行(或者可能是一个配置文件)。

你知道怎么做吗?

4

2 回答 2

1

尝试使用:

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

这将避免弹出窗口询问用户名。如果您在.ssh文件夹中正确配置了密钥,则身份验证也应该起作用。

于 2012-08-20T10:51:24.607 回答
1

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

所以我必须在每个会话中只提供一次私钥密码(给选美),而不是在每次需要时。由于 pageant 是一个身份验证代理,它适用于所有进行 ssh 连接的程序(我用 msysgit 对其进行了测试,没有问题)。

见:http ://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter9.html

于 2012-08-20T09:53:17.890 回答