当前位置:  开发笔记 > 编程语言 > 正文

即使给出了公钥,Gitosis也需要密码

如何解决《即使给出了公钥,Gitosis也需要密码》经验,为你挑选了3个好方法。

尝试在我的Archlinux上配置gitosis时遇到了一些问题

http://wiki.archlinux.org/index.php/Setting_Up_Git_ACL_Using_gitosis

我参考了这篇wiki文章并成功安装了gitosis.

$ sudo pacman -U gitosis-git-20090525-1-i686.pkg.tar.gz
$ sudo -H -u gitosis gitosis-init

并修改了/srv/gitosis/.ssh/authorized_keys以包含我本地用户的id_rsa.pub.

但是当我git clone作为本地用户运行时,

$ git clone gitosis @ host:gitosis-admin.git

它说


/home/wyx/gitosis-admin/.git/gitosis@10.132.140.73密码中初始化的空Git存储库:*****
致命:'gitosis-admin.git'似乎不是一个
致命的git存储库:远程端意外挂断了

所以git clone操作失败了.我想知道为什么它试图在我的本地用户的目录(/ home/wyx)中初始化一个空的git存储库?既然我已经在.ssh/authorized_keys中添加了本地用户的id_rsa.pub,为什么还要求输入密码呢?



1> mshroyer..:

创建了一个空的存储库,因为这就是git的工作方式:它必须先启动一个repo才能开始将远程对象拉入其中.不幸的是,这意味着您必须在再次尝试克隆之前手动删除空仓库.

至于克隆失败的原因,看起来你的远程存储库路径使用了错误的语法; git clone不使用scp语法.事实上,如果你没有指定克隆协议,我相信它假设git协议而不是ssh,这可能就是它要求你输入密码的原因.试试这个:

$ git clone ssh://gitosis@host/~/gitosis-admin.git


从git 1.6+开始,您不必指定协议.所以user @ host:reponame.git会起作用.

2> Rahul..:

我也面临同样的问题"致命:'/ gitosis-admin.git'似乎不是一个有效的存储库." 我搜索了很多问题,最后找到了解决方案.

实际上,gitosis用户的默认地址是"/ srv/gitosis":如我的设置有ubuntu服务器10.04.

当我们写"git clone gitosis@server.com:gitosis-admin.git"时,它会搜索/ srv/gitosis中的gitosis-admin.git存储库.所以当我进入/ srv/gitosis时,我发现其中有另一个存储库,名为存储库,由gitosis-admin.git存储库组成.

所以实际上默认情况下gitosis-admin.git不在默认位置.所以我必须修改命令路径然后它工作正常.

我将存储库克隆到我的本地计算机上.我用这个命令:

"git clone gitosis@server.com:repositories/gitosis-admin.git",它对我来说很好.

请参阅您的案例中的gitosis-admin目录,我希望您能够解决您的问题.



3> RawMean..:

这就解决了我的问题(在Ubuntu上):

git clone gitosis@ns.home:/srv/gitosis/repositories/gitosis-admin.git

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有