我是 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
并且, 在本地 mac 中,
ssh-keygen -t rsa.
在keydir/testid.pub中添加了公钥
然后,git add/git commit/git push 就搞定了。
好的,然后我尝试从远程服务器克隆新的 git 存储库。
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 克隆失败。
我的远程服务器是 CentOS。
欢迎评论。
最佳答案
使用 gitolite
,您所有的 ssh 通信都是通过用于安装 gitolite
的帐户完成的。
在你的例子中:gitolite
。
但是,您可以指定一个不同公钥,以指示 gitolite
对不同用户进行身份验证。
ssh session 仍将作为 gitolite
执行。
但是传递给 gitolite
脚本的名称将是 testid
(因为公钥是由 gitolite
在其 ~/.ssh/authorized_keys
as '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 行)
然后,这个 git clone
应该可以工作了:
git clone gitolitesrv:aproject.git
OP Jinbom Heo提到有困难:
克隆到“aproject”...
一个项目的 R 访问被拒绝到 gitolite
(或者给定路径可能没有存储库。您拼写正确吗?)
fatal: 远端意外挂断
it appears that git user is not
testid
butgitolite
.
Host dev2git
Hostname dev.remoteserver.com
User gitolite
IdentityFile ~/.ssh/testid
And a
gitolite.conf
file include the following (git-pushed):
repo 项目 RW+ = testid
At last, I found the reason.
When generating ssh-key using ssh-keygen, I typed password. That's the problem.
So I tried keygen without password, and it works~. I don't know why password should not be added when I make the key. Anyway, It works well
我可以确认我一直使用无密码 key 。
如果您确实想用密码保护您的 key ,请参阅“appendix 1: ssh daemon asks for a password”
make sure you're being asked for a password and not a passphrase.
Do not confuse or mistake a prompt saying Enter passphrase for key '/home/sitaram/.ssh/id_rsa
': for a password prompt from the remote server!When you create an
ssh keypair
usingssh-keygen
, you have the option of protecting it with a passphrase.
When you subsequently use thatkeypair
to access a remote host, your localssh
client needs to unlock the corresponding private key, andssh
will probably ask for the passphrase you set when you created thekeypair
.You have two choices to avoid this prompt every time you try to use the private key.
- The first is to create keypairs without a passphrase (just hit enter when prompted for one).
Be sure to add a passphrase later, once everything is working, usingssh-keygen -p
.- The second is to use
ssh-agent
(orkeychain
, which in turn usesssh-agent
) or something like that to manage your keys.
Other than discussing one more potential trouble-spot withssh-agent
(see "appendix 3: ssh client may not be offering the right key"), further discussion ofssh-agent/keychain
is out of scope of this document.
关于git - 无法使用 Gitolite 添加用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9630937/