不需要询问用户密码即可进行git克隆

6
我想在我的专用服务器上创建一个公共git代码库,让任何人都可以克隆,但它一直要求我为git用户输入密码。
我创建了一个名为git的用户,没有密码。使用了如下命令: passwd -d git
不幸的是,每次我尝试执行以下命令时:
git clone git@myhost:myrepo.git
都会要求我输入密码。
我已经尝试在sshd_config中设置,但似乎并没有起作用。
Match user git 
        PermitEmptyPasswords yes 
        PasswordAuthentication yes 

无论在PasswordAuthentication上是yes还是no,仍然没有用。
2个回答

5
似乎无法在ssh上进行此操作。除非您复制您的公钥,否则它将始终要求密码。
解决方案是使用git daemon并通过git://协议克隆存储库。 git clone git://hostname/directory 如需更多信息,请输入git help daemon
提示: 请记住,您需要给它读取权限。从我的经验来看,设置其他人:chmod -R o+r project.git不起作用,出于某种原因。您可以通过授权或组允许git访问。您可以在守护进程级别上禁止对仓库的写入访问(默认行为)。

应该是git@github.com:<账户>/<项目>.git。 - 15412s

0

和设置无密码 SSH 登录一样的步骤。

  1. 生成一个无需密码的私钥/公钥对

    ssh-keygen <your-key-filename>
    
  2. 使用ssh-copy-id将其复制到您的主机服务器上

  3. 在客户端的.ssh文件夹下添加一个配置文件(注意:此步骤是可选的),配置文件的内容类似于以下内容:

    Host <git-server>
            Hostname <ip-of-your-git-server>
            User <your-git-user-name>
            Port <your-git-server-port>
            IdentityFile <path-to-your-private-key>
    
  4. 尝试通过ssh登录您的主机:

    ssh <git-server>
    
  5. 现在,您可以克隆、推送、拉取或执行其他操作到您的git服务器上了

编辑:尝试谷歌搜索“无密码ssh登录”以获取更多详细信息和技巧。


它应该是一个“公共”的git存储库,因此任何RSA ID复制都是不可能的。 - sebastian_t
抱歉,我没有注意到。顺便说一下,我认为这不能使用git协议完成,唯一的选择是设置一个基于Web的前端以进行公共http/https访问。 - Alsan
那么 GitHub 是如何做到的呢? - sebastian_t
1
Git使用RSA密钥进行git协议访问,使用HTTPS进行公共访问。 - Alsan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接