1
qq529633582 2014-08-18 20:59:27 +08:00
我猜是自己造的sshd,实现了一个伪ssh协议
|
2
snachx OP @qq529633582 自己找到了,Gitosis以及更强大的Gitolite就是专门做这个事情的。。。
|
3
rrrrutdk 2014-08-19 10:57:51 +08:00 1
不是它们专门做这个事情,而是SSH。
一般某用户的ssh配置存在于$HOME/.ssh下。 其中有个特殊的文件:authorized_keys。 它每行记录一个public key; 它允许其中的public key对应的private key拥有者能通过key登录; 它同时允许在登录时执行相应的命令。 所以你上传一个public key,实际上就是在目标用户(一般为git)的authorized_keys中添加了类似的一行: command="/var/lib/gitlab/gitlab-shell/bin/gitlab-shell key-28",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa ... key-28其实就是你上传的public key对应的索引,通过它可以标识你。 |