Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
在Windows上Git中的多个ssh密钥之间切换_Windows_Git_Ssh_Repository - Fatal编程技术网

在Windows上Git中的多个ssh密钥之间切换

在Windows上Git中的多个ssh密钥之间切换,windows,git,ssh,repository,Windows,Git,Ssh,Repository,我需要在我的客户端中有多个密钥才能访问存储库托管上的两个不同帐户。请参阅->如何在我的客户机上使用多个密钥对管理多个帐户 我不知道如何在Windows上的Git中更改不同的ssh密钥,有人能帮我吗?我会间接地回答这个问题。我以前使用过git bash,我发现当我通过git bash shell使用git时,它的行为就像mac或linux bash shell一样。这意味着,在使用git bash时,我可以像这样回答您的问题: “如果您使用git bash,您可以像在linux或mac上一样,使用

我需要在我的客户端中有多个密钥才能访问存储库托管上的两个不同帐户。请参阅->如何在我的客户机上使用多个密钥对管理多个帐户


我不知道如何在Windows上的Git中更改不同的ssh密钥,有人能帮我吗?

我会间接地回答这个问题。我以前使用过git bash,我发现当我通过git bash shell使用git时,它的行为就像mac或linux bash shell一样。这意味着,在使用git bash时,我可以像这样回答您的问题:


“如果您使用git bash,您可以像在linux或mac上一样,使用ssh代理/ssh add和friends管理多个帐户”

在Windows上,您应该尝试为PuTTY、PSCP、PSFTP和Plink使用Pageant ssh身份验证代理。此工具可以管理您的ssh密钥及其密码短语。 要将它与Git一起使用,您必须安装Putty并链接到plink.exe设置Git_SSH变量

  • 安装腻子和朋友(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
  • 设置GIT_SSH

    set GIT\u SSH=

  • 开始选美并添加关键点
  • 跑吉特

  • Daniel

    git用来连接的SSH程序处理哪个服务器使用哪个密钥。在默认设置中,这应该是命令行SSH客户端(openSSH?)

    使用openSSH,您可以在
    ~/.ssh/config
    文件中为特定主机配置特定密钥文件:

    Host foo.example.com
      IdentityFile ~/.ssh/foo.example.com-id_rsa
    
    Host bar.example.com
      IdentityFile ~/.ssh/bar.example.com-id_rsa
    
    其中
    ~/.ssh/*.example.com-id\u rsa
    是每个服务器的私钥文件


    我希望这有帮助。

    我假设您使用git bash和openssh

    就像本文中所写的一样,您可以为ssh客户机创建一个配置文件,其中列出了您的所有帐户。您可以在
    ~/.ssh/config

    Host account-one
    HostName server.example.com
    User user-one
    IdentityFile ~/.ssh/key-one
    
    Host account-two
    HostName server.example.com
    User user-two
    IdentityFile ~/.ssh/key-two
    
    它说的是定义两种“主机别名”,分别命名为
    accountone
    accounttwo
    。如果使用它们,在建立连接时,ssh客户端将使用相应的
    主机名
    用户
    标识文件
    作为服务器地址、用户名和ssh密钥文件。有了它,您甚至可以使用它们在同一台服务器上访问您的帐户和密钥

    在git中,可以使用它们定义两个远程设备

    $ git remote add one account-one:repository.git
    $ git remote add two account-two:repository.git
    
    然后你可以推到那些遥控器上

    $ git push one master
    $ git push two master
    

    您是否使用OpenSSH或Plink进行SSH连接?您可以在中找到有关设置SSH的更多信息,即使您在Windows上运行,这些路径也应该具有正向斜杠?所有这些路径都类似于unix,因此如果您在Windows上使用cygwin,它们将正常工作,如果您使用其他东西作为shell,您将需要调整它们。谢谢!我刚刚看到你也可以在Windows上使用“/C/Users/Benny/.ssh/id\u rsa”之类的东西。我正在连接ssh中的非默认端口(22)。我应该在配置文件中的何处指定此端口?只需在特定主机部分中包括
    端口2666
    或任何端口。嗨,我将如何使用此配置文件进行克隆。“$git clone one repositoyr.git master”给出错误“参数太多”不要忘记在主机名和存储库路径之间添加冒号。在您的情况下,它将是
    one:repositoyr.git
    ,如文档中所指定,IdentityFile指定从中读取用户的RSA或DSA身份验证标识的文件。文件名可以使用波浪号语法引用用户的主目录或以下转义字符之一:“%d”(本地用户的主目录)、“%u”(本地用户名)、“%l”(本地主机名)、“%h”(远程主机名)或“%r”(远程用户名)。例如,IdentityFile%u/.ssh/idrsa是否有任何方法可以在同一主机上为每个repo使用单独的用户访问两个repo?@Putnik see我知道此线程非常旧,但我有类似的问题。如果你想用git开始选美比赛,你不需要每一次吗?@Doan是的,你需要。我将其添加到计划任务中。