Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免在执行git推送时弹出询问用户名的窗口_Git_Ssh_Cygwin_Msysgit_Tortoisegit - Fatal编程技术网

避免在执行git推送时弹出询问用户名的窗口

避免在执行git推送时弹出询问用户名的窗口,git,ssh,cygwin,msysgit,tortoisegit,Git,Ssh,Cygwin,Msysgit,Tortoisegit,我的Windows机器上安装了Cygwin、msysgit和Ortoisegit。我正在为Cygwin编写一个脚本,通过ssh将git推送到远程机器: git push ssh://host/path/to/git master:master 此时,会出现一个弹出窗口,询问要用于SSH的用户。如果我输入一个用户,那么我会得到第二个弹出窗口,询问我该用户的密码。现在,我有两个问题: 该用户使用密钥对进行身份验证,因此没有密码。弹出窗口不允许我指定私钥 我编写脚本的原因是为了避免重复编写诸如用户名

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

git push ssh://host/path/to/git master:master
此时,会出现一个弹出窗口,询问要用于SSH的用户。如果我输入一个用户,那么我会得到第二个弹出窗口,询问我该用户的密码。现在,我有两个问题:

  • 该用户使用密钥对进行身份验证,因此没有密码。弹出窗口不允许我指定私钥
  • 我编写脚本的原因是为了避免重复编写诸如用户名和私钥位置之类的普通内容,因此我希望能够将用户名和私钥文件的路径传递到命令行(或者可能是配置文件)

  • 你知道怎么做吗?

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

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

    请参阅:

    尝试使用:

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

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

    事实上,我可以确认这不是真的,至少在msysgit中是这样。在遥控器中指定用户名并不能避免恼人的弹出窗口。