2012-08-09 119 views
1

當我試圖推動,gitolite說,在我的〜/ .ssh/config中爲不能推入gitolite管理員回購

Host githost-adm 
HostName real.hostname.com 
User git 
IdentityFile ~/.ssh/gitolite-admin 

專用密鑰加載描述

Counting objects: 7, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (3/3), done. 
Writing objects: 100% (4/4), 339 bytes, done. 
Total 4 (delta 1), reused 0 (delta 0) 
remote: 
remote:   ***** ABORTING ***** 
remote:   bad username me, 
To ssh://[email protected]/gitolite-admin 
    32cfc9f..41ee58f master -> master 

githost-ADM ssh-agent,所以當我想連接到gitolite-admin repo時,這使得ssh可以使用特定的身份密鑰。有類似的ssh別名githost-as-me包含另一個用於連接到其他repos的身份文件。

sshd的日誌似乎證明PUBKEY被接受

Accepted publickey for git from real.hostname.ip port 38916 ssh2 

因此它可能是某處gitolite在錯誤皮內。

+0

是你的用戶名'我'? – victorsavu3 2012-08-09 11:54:07

+0

這是OS用戶名,它同時擁有gitolite-admin和其他repos的密鑰。 Gitolite用戶創建用於訪問gitolite-admin repo,名爲'gitolite-adm','我'用戶無權訪問它,並僅在其他repos訪問列表中提及。 – tijagi 2012-08-09 12:25:18

回答

0

此錯誤消息來自src/lib/Gitolite/Conf/Store.pm

sub parse_users { 
    my $users = shift; 
    my @users = split ' ', $users; 
    do { _die "bad username '$_'" unless $_ =~ $USERNAME_PATT } 
     for @users; 

    return @users; 
} 

有了:

$USERNAME_PATT  = qr(^\@?[0-9a-zA-Z][-0-9a-zA-Z._\@+]*$); 

存儲從您的配置文件,你是在gitolite-admin回購推新用戶時src/lib/Gitolite/Conf.pm調用。

} elsif ($line =~ /^(-|C|R|RW\+?(?:C?D?|D?C?)M?) (.*)?= (.+)/) { 
      my $perm = $1; 
      my @refs = parse_refs($2 || ''); 
      my @users = parse_users($3); 

所以仔細檢查你的配置文件的語法(在這裏,因爲documented for Gitolite V3, or 'g3':如果你仍然在V2,檢查this page)。
它必須有某種語法錯誤。

無論如何,這不是一個ssh問題