我已经在远程计算机上设置了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
答案 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
解决了这种情况。