1

押そうとするとギトライトが言う

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://git@githost-adm/gitolite-admin
   32cfc9f..41ee58f  master -> master

私の ~/.ssh/config に githost-adm が次のように記述されています

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

秘密鍵は ssh-agent に読み込まれるため、gitolite-admin リポジトリに接続するときに ssh が特定の ID キーを使用できるようになります。他のリポジトリに接続するための別の ID ファイルを含む、同様の ssh エイリアス githost-as-me があります。

sshd ログは、pubkey が受け入れられたことを証明しているようです

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

したがって、エラーが隠れているのはおそらく gitolite 内のどこかにあるでしょう。

4

1 に答える 1

0

This error message comes from 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;
}

With:

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

Called by src/lib/Gitolite/Conf.pm when storing the new users from your config file that you are pushing in the gitolite-admin repo.

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

したがって、構成ファイルの構文を再確認してください (ここでは、Gitolite V3 または 'g3' について文書化されています。まだ V2 を使用している場合は、このページを確認してください)。
ある種の構文エラーが含まれている必要があります。

とにかく、これは ssh の問題ではありません

于 2012-08-09T12:54:06.400 に答える