git clone 不询问用户密码

Posted

技术标签:

【中文标题】git clone 不询问用户密码【英文标题】:git clone without asking for users password 【发布时间】:2016-03-10 01:33:27 【问题描述】:

我想在我的专用服务器上创建公共 git 存储库供任何人克隆,但它一直要求我输入 git 用户的密码。

我创建了一个没有密码的名为 git 的用户。使用:

密码 -d git

不幸的是,每次我尝试这样做:

git clone git@myhost:myrepo.git

我被要求输入密码。

我已经尝试在sshd_config中设置

Match user git 
        PermitEmptyPasswords yes 
        PasswordAuthentication yes 

PasswordAuthentication 选择是和否,但仍然没有用。

【问题讨论】:

【参考方案1】:

似乎通过 ssh 来做这件事是不可能的。除非您复制您的公钥,否则它将始终要求输入密码。

解决方案是使用git daemon 并通过 git:// 协议克隆存储库

git clone git://hostname/directory

有关它的更多信息,我建议git help daemon

提示: 请记住,您需要授予它读取权限。根据我设置其他人的经验:chmod -R o+r project.git 由于某种原因无法正常工作。您必须允许通过作者或组进行 git 访问。您可以禁止在守护程序级别(默认行为)对您的存储库进行写访问。

【讨论】:

应该是 git@github.com:/.git【参考方案2】:

与设置无密码 ssh 登录的过程相同。

    生成一个密码较少的私钥/公钥对

    ssh-keygen <your-key-filename>
    

    ssh-copy-id 到您的主机服务器

    在你的客户端.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>
    

    尝试通过 ssh 登录您的主机:

    ssh <git-server>
    

    现在您可以克隆、推送、拉取任何内容到您的 git 服务器

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

【讨论】:

它应该是一个public git 存储库,所以任何 rsa id 复制都是不可能的。 对不起,我没有注意到。顺便说一句,我认为这不能用 git 协议完成,剩下的唯一选择是为公共 http/https 访问设置一个基于 Web 的前端。 那么github是怎么做到的呢? Git 使用 RSA 密钥进行 git 协议,使用 HTTPS 进行公共访问。

以上是关于git clone 不询问用户密码的主要内容,如果未能解决你的问题,请参考以下文章

Git Clone 命令指定用户名密码

git clone 带用户名密码

用ssh方式git clone,能不每次都输密码吗

运行“git clone git@remote.git”时如何提供用户名和密码?

Git使用http clone客户端保存用户名密码

用ssh方式git clone,能不每次都输密码吗?