git + gitosis + ssh的几点注意

自己之前使用gitosis管理用户,长时间没有使用了,期间电脑重新安装了,导致之前电脑里ssh的私有key丢了,再使用时出现了一些问题,就随手记一下吧。

 

■ 指定SSH端口

ssh经常会修改为其它的端口,这种情况访问不能象ssh命令中那样加 -p参数,而要像下面这样:

git clone ssh://用户名@主机:ssh端口/项目名

如:

git clone ssh://git@192.168.1.1:8989/myproject.git

 

需要注意的是在ssh使用默认端口时  ":"后面可直接接项目名(xxxx.git),

但这里加了端口后需要追加分割符号,千万别再加一个":"来分割。而使用"/"分割

这个不需要指定全路径, /myproject.git 这里的myproject.git只是在仓库中的项目名而以。

 

■public key认证 及  相对路径的问题

因为我是想配置一些权限及追加public key, 所以用gitosis-admin这个项目举例:

当我clone  gitosis-admin.git项目时,出现下面的错误:

git clone ssh://git@192.168.1.1:8989/gitosis-admin.git

Cloning into 'gitosis-admin'...

git@192.168.1.1's password: 

fatal: '/gitosis-admin.git' does not appear to be a git repository

fatal: The remote end hung up unexpectedly

 

这里有两个错误

1. git@192.168.1.1's password: 

当然这里只要输入正确的git的用户名和密码就可以了,或都你将你的public key放到git用户的.ssh下手动导入 cat 到authorized_keys文件中,但同样会出下

 

fatal: '/gitosis-admin.git' does not appear to be a git repository

fatal: The remote end hung up unexpectedly

这个错误。
网上一般的解决方法是将 /gitosis-admin.git 换成全路径,这样的确可以clone下来,也可以正常提交,但这样就绕过了gitosis的管理,这不是我想要的结果。

 

 

2. fatal: '/gitosis-admin.git' does not appear to be a git repository 

如果不是gitosis-admin的成员或没有git用户通常的访问权限,你就得找他们来帮你弄了。

其实只要是通过正常gitosis的配的手顺,是不会出现这个问题的。

 

将你的public key(如 temp.pub) 放到 gitosis-admin/keydir目录下,修改gitosis.conf,追加用户到gitosis-admin项目中

 

[group gitosis-admin]

writable = gitosis-admin

members = admin temp

然后对这两个文件追加,提交,push即可。

git add gitosis.conf

git add temp.pub

git commit -m "XXXXX"

git push origin master

 

然后你再 git clone ssh://git@192.168.1.1:8989/gitosis-admin.git

就不会再出现上面的两个错误,可以正常使用相对路径了。

 

关键的地方在于,gitosis会将你的xxx.pub的内容导入到git用户的.ssh/authorized_keys"文件,

gitosis导入的格式和通常的格式不太一样,例如

command="gitosis-serve temp",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

看一下就知道为什么自己导入的会绕过gitosis管理了吧。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值