git - 无法使用 Gitolite 添加用户

标签 git gitolite

我是 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
此时,他们的名字并不重要(可以是 xxxxxx.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 but gitolite.

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 using ssh-keygen, you have the option of protecting it with a passphrase.
When you subsequently use that keypair to access a remote host, your local ssh client needs to unlock the corresponding private key, and ssh will probably ask for the passphrase you set when you created the keypair.

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, using ssh-keygen -p.
  • The second is to use ssh-agent (or keychain, which in turn uses ssh-agent) or something like that to manage your keys.
    Other than discussing one more potential trouble-spot with ssh-agent (see "appendix 3: ssh client may not be offering the right key"), further discussion of ssh-agent/keychain is out of scope of this document.

关于git - 无法使用 Gitolite 添加用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9630937/

相关文章:

git - ERELEASEBRANCHES 发布分支在 `branches` 配置中无效。当我使用对象时

使用 gitolite 的 git 默认远程分支

gitolite - 拉不工作 - TortoiseGIT/Windows 7/Debian + gitolite 上的 GIT

git - 使用 git 处理不同的配置

git - Git "alternates mechanism"是什么?

git - "cmd: command not found"来自 git bash 中的 "start"命令(在 Windows 资源管理器中打开目录)?

git 'failed to read object' 和 'unable to find' 错误

git - .github/workflows 文件是特定于分支的吗?

git - 在 Git 中跟踪 Gitolite(常见)钩子(Hook)

git - 移动 gitolite 服务器