我刚开始使用gitolite。 我在远程服务器上安装了gitolite。
http://dev.remoteserver.com
所以我可以git-cloning gitolite-admin.git。
git clone ssh://gitolite@dev.remoteserver.com/gitolite-admin.git
我想使用gitolite添加用户和repo。以下是普通的添加用户流程。
在本地存储库中,
conf / keydir目录存在。
open conf/gitolite.conf
在文字下方添加。
repo aproject
RW+ = testid
和, 在local-mac中,
ssh-keygen -t rsa.
在keydir / testid.pub中添加了公钥 然后,git add / git commit / git push做得很好。
好的,然后我尝试从远程服务器克隆新的git repo。
git clone ssh://testid@dev.remoteserver.com/aproject.git
但是,它会犯这样的错误......
mac$ git clone ssh://testid@dev.remoteserver.com/aproject.git
Cloning into 'aproject'...
mac@dev.remoteserver.com's password:
Permission denied, please try again.
mac@dev.remoteserver.com's password:
Permission denied, please try again.
mac@dev.remoteserver.com's password:
Permission denied (publickey,gssapi-with-mic,password).
fatal: The remote end hung up unexpectedly
我认为git克隆不应该问密码。 并且正确的密码也无法通过git-cloning。
我的远程服务器是CentOS。
欢迎评论。
答案 0 :(得分:6)
使用gitolite
,您使用用于安装gitolite
的帐户完成所有ssh通信。
在您的情况下:gitolite
。
但是,您可以指定不同的公钥,以指示gitolite
对其他用户进行身份验证。
ssh会话仍将以gitolite
执行
但传递给gitolite
脚本的名称将为testid
(因为公钥已由gitolite
在其~/.ssh/authorized_keys
中注册为“testid
”
因此,请使用~testid/.ssh/config
文件,在其中提及正确的参数:
Host gitolitesrv
Hostname dev.remoteserver.com
User gitolite
IdentityFile /path/to/tesitd
请注意,/path/to/
必须包含您的私钥testid
和您的公钥testid.pub
。
此时,他们的名字并不重要(可以是xxx
和xxx.pub
)
重要的是gitolite-admin/keydir/testid.pub
中存储的公钥名称(因为该文件的名称用于authorized_keys
forced-command行中记录的ID)
然后,这个git clone
应该有效:
git clone gitolitesrv:aproject.git
OP Jinbom Heo提到有困难:
克隆到'aproject'......
项目的R访问被拒绝给gitolite
(或者在给定路径上可能没有存储库。你拼写正确吗?)
致命:远程端意外挂断
git用户似乎不是
testid
而是gitolite
。
Host dev2git
Hostname dev.remoteserver.com
User gitolite
IdentityFile ~/.ssh/testid
回复aproject RW + = testid
gitolite.conf
文件包含以下内容(git-pushing):
最后,我找到了原因 使用ssh-keygen生成ssh-key时,我输入了密码。那就是问题 所以我尝试了没有密码的keygen,它的工作原理〜。我不知道为什么在我制作密钥时不应该添加密码。无论如何,它运作良好
我可以确认我一直使用无密码短语 我确实希望用密码来保护您的密钥,请参阅“appendix 1: ssh daemon asks for a password”
确保要求您输入密码而不是密码 不要混淆或错误提示输入密钥“
/home/sitaram/.ssh/id_rsa
”的密码输入:来自远程服务器的密码提示!使用
ssh keypair
创建ssh-keygen
时,您可以选择使用密码来保护它。
当您随后使用keypair
访问远程主机时,您的本地ssh
客户端需要解锁相应的私钥,ssh
可能会询问您在设置时设置的密码您创建了keypair
。每次尝试使用私钥时,有两种选择可以避免此提示。
- 第一种是创建没有密码的密钥对(只要在提示输入密码时按Enter键) 一旦一切正常,请务必使用
添加密码ssh-keygen -p
。- 第二种方法是使用
ssh-agent
(或keychain
,然后使用ssh-agent
)或类似的东西来管理您的密钥。
除了与ssh-agent
讨论另外一个潜在的问题点(请参阅“appendix 3: ssh client may not be offering the right key”)之外,对ssh-agent/keychain
的进一步讨论超出了本文档的范围。
答案 1 :(得分:0)
在初始设置后我无法克隆gitolite-admin
存储库,这是因为我给了gitolite用户git
和{{1的主文件夹的组写权限不喜欢那样。
我查看了ssh
,看到了这个:
身份验证被拒绝:目录/ home / git
的所有权或模式不正确
所以我所要做的就是:
/var/log/secure