一台机器上有多个gitolite用户

时间:2014-04-19 17:34:33

标签: git gitolite

我已经在远程计算机上设置了gitolite并从我的本地配置了它。我不想让我的活动显示为" admin"并创建了用户和密钥" noah"。在为" noah"创建回购后,我被拒绝访问。我相信因为我还是#34;管理员#34;。

所以我在一台机器上有两个帐户。我该怎么切换?

由于

更新:

这是我的本地〜/ .ssh / config /:

#noah account
    Host git-noah
    HostName remote
    User git
    IdentityFile ~/.ssh/noah</code>
本地的

命令: git clone git-noah@remote-ip:reponame

远程的authorized_keys: command="/usr/share/gitolite/gl-auth-command noah",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa ...

如果重要,我会在Mac上。我还完成了ssh-add -K ~/.ssh/noah

更新2:

这是auth.log:

server sshd[2834]: Invalid user git-noah from localip
server sshd[2834]: input_userauth_request: invalid user git-noah [preauth]

这是本地权限:

drwx------+  13 noah    442 19 Apr 14:47 .ssh

远程权限:

-rwx------ 1 git 1067 Apr 19 14:57 authorized_keys
drw------- 2 git  4096 Apr 19 14:57 .ssh

1 个答案:

答案 0 :(得分:1)

如果您使用具有不同ssh密钥的拖曳帐户(如&#34; How do programs like gitolite work?&#34;中所述),您切换的方式是使用ssh url指示ssh查找noah& #39; s键(而不是管理员的密钥)。

为此,您需要一个ssh配置文件(在HOME/.ssh/config中),我详细说明了&#34; How to use specified key when working with github via portablegit?&#34;:

#admin account
Host gitolite-admin
    HostName yourGitoliteServer
    User git
    IdentityFile ~/.ssh/id_rsa_admin

#noah account
Host gitolite-noah
    HostName yourGitoliteServer
    User git
    IdentityFile ~/.ssh/id_rsa_noah

要克隆你为noah制作的回购,你可以使用一个引用ssh配置文件中右边条目的url。

git clone gitolite-noah:yourRepo.git

通过使用该网址,您要设置一个名为origin的遥控器:您可以使用git remote -v查看它。

这意味着任何使用该远程名称的命令(如git pull origin或git push origin)都将使用该ssh url,它明确引用特定的私有ssh密钥,而后者又将您识别为Gitolite noah


调试ssh最有效的方法是检查sshd如何监听服务器上的查询。

因为它是debian(as per out discussion):

  • /usr/sbin/sshd -d -D -p 222在服务器上,
  • 客户
  • ssh -p 222 -Tv git-noah

(注意使用专用端口的技巧,这样,无需停止实际的sshd:它是一个特殊端口上的一次性会话,仅用于调试目的)

我们很快就看到了

Could not open authorized keys '/home/git/.ssh/authorized_keys': Permission denied

与以下内容一致:

root@server:/# ls -lato ~git/
drw------- 2 git 4096 Apr 19 14:57 .ssh

chmod 700 ~git/.ssh解决了这种情况。