代码之家  ›  专栏  ›  技术社区  ›  user64718

Git一直在询问密码

  •  5
  • user64718  · 技术社区  · 14 年前

    我已经搜索了好几个小时,寻找解决这个问题的方法,但我没有尝试过任何方法。让我先说一下,虽然我以前用过*nix,但我几乎是个笨蛋,所以我肯定我错过了在某个地方设置git的步骤。

    我在工作时在网络上设置了一个Ubuntu设备来托管我们的新git repo。盒子运行git、gitosis和viewgit。一切似乎都设置正确,我可以查看我在viewgit中添加的回购。问题是,当我在Windows中通过TortoiseGit克隆回购时。当我输入地址“git@10.10.0.144:/home/git/plugins/.git/”时,它会自动在Linux框中为“git”用户请求密码。我可以将此地址从“git@”更改为系统上的任何其他用户名,它还将要求该用户输入密码。在任何情况下,输入该用户的密码都会继续将repo克隆到本地系统。此外,分支、放置和拉也将要求输入密码,如果输入的一切都正常工作。

    我已经在Windows设备上创建了rsa pub文件(通过git bash)并将其存储在gitosis的keydir文件夹中,还添加了用户gitosis.conf文件(rsa文件名减去.pub)。我还修改了sshd_配置文件,将“allowusers git”和系统上的用户名包括在内。我迷路了,给每个我想访问这个存储库的人一个服务器IP地址、用户名,然后是该用户名的密码,这样他们就可以下载一些代码,这似乎不是一个好主意。谢谢你的帮助!

    3 回复  |  直到 7 年前
        1
  •  2
  •   Denis Fuenzalida    13 年前

    最近我也遇到了同样的问题:我可以从Cygwin克隆/推送Gitosis管理的repo,但TortoisGit一直在请求Git用户的密码(Git@192.168.1.30)。

    最后,我可以通过重新安装TortoisGit(我在安装时选择了plink选项),然后在TortoisGit设置中转到Network>ssh客户端,并将值更改为cygwin ssh二进制文件(即c:\cygwin\bin\ssh.exe)。

    通过更改这个,我可以从TortoisGit执行所有操作,并且我被要求输入在Cygwin上定义的ssh密钥的密码。

    另外,检查gitosis.conf是否包含cygwin可见的公钥,删除“.pub”扩展名:如果我的cygwin安装显示 MyPux@ MyHub ,gitosis.conf上的相关条目应为 MyPux@ MyHub 带有公钥的文件应该是打开的 keydir/myuser@myhost.pub

        2
  •  0
  •   lifeisfoo    7 年前

    大约两周前在我的盒子里也经历过同样的事情:)你已经是90%的人了。

    要修复tortoisegit,请卸载并重新安装它,但这次选择使用putty p-link而不是openssh。然后当你去推或拉项目时,检查一下 autoload putty key “东西。

        3
  •  0
  •   jwg    7 年前

    首先,用于克隆git repo的URL可以是git+ssh,如示例中的http/https或其他各种东西。ssh和http都是非常常见的,人们通常使用ssh为能够推送到repo的经过身份验证的用户提供服务,而http为其他用户提供服务,这些用户可以克隆和拉取,但通常不能推送,或者对推送到的位置有限制。如果您可以在viewgit中查看您的repo,那么您可能会得到一个repo的HTTP URL,您可以在不登录到clone或pull的情况下使用该URL。

    现在,如果您想继续使用ssh,有两件事需要考虑:

    您需要能够使用ssh连接到服务器,而无需输入密码。如果您使用的是cygwin ssh,那么应该能够

    ssh git@10.10.0.144
    

    连接到那台机器而不需要密码。如果您使用putty,那么您应该能够打开putty,输入主机名,并被要求输入用户名,但是在没有密码的情况下进行连接(或者使用相应的putty命令行)。请注意,当您成功执行此操作时,可能会发生以下两种情况之一。或者你作为git用户在那台机器上得到一个普通的shell。或者,您会看到一条简短的消息,比如“ssh是为使用git而正确设置的”,并且连接将立即关闭。

    如果不能这样做,则需要在Git服务器上设置公钥,并将私钥加载到Windows框中的内存中。前者可能是通过肠炎。对于后者,您将使用pagent(如果使用putty)或ssh-add(如果使用cygwin ssh)。如果需要,可以先使用不带密码短语的密钥。这将删除手动加载密钥并输入密码短语的步骤。在您可以通过ssh无密码连接之前,不要进入下一步。

    您需要做的第二件事是配置Git客户机使用的ssh以及如何使用。如果您可以如上所述进行连接,但是您的Git客户端无法连接,或者没有克隆就无法连接,那么您需要设置此设置。

    基本的思想是,您要准确地告诉TortoiseGit到Git服务器的ssh命令行是什么。您可能需要检查诸如路径和环境变量之类的内容,以确保TortoisGit能够准确地复制您使用ssh连接的方式。这个答案 https://stackoverflow.com/a/11249914/1737957 给出了基本的想法。

    推荐文章