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:/与设置无密码 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 不询问用户密码的主要内容,如果未能解决你的问题,请参考以下文章