2014-01-16 3 views
3

Я использую gerrit для обзора кода, и я использую плагин репликации, чтобы синхронизировать репо с github.com.«gerrit: replicate: not found» даже после установки плагина репликации

Но репликация не работает. Он бросает мне ошибку:

[2014-01-16 11:23:04,694] ERROR com.googlesource.gerrit.plugins.replication.ReplicationQueue : Cannot replicate to [email protected]:visitvinoth/gerrit_prj_1.git 
org.eclipse.jgit.errors.TransportException: [email protected]:visitvinoth/gerrit_prj_1.git: reject HostKey: github.com 
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:142) 
    at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:121) 
    at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:248) 
    at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:147) 
    at com.googlesource.gerrit.plugins.replication.PushOne.listRemote(PushOne.java:468) 
    at com.googlesource.gerrit.plugins.replication.PushOne.doPushAll(PushOne.java:416) 
    at com.googlesource.gerrit.plugins.replication.PushOne.generateUpdates(PushOne.java:409) 
    at com.googlesource.gerrit.plugins.replication.PushOne.pushVia(PushOne.java:357) 
    at com.googlesource.gerrit.plugins.replication.PushOne.runImpl(PushOne.java:340) 
    at com.googlesource.gerrit.plugins.replication.PushOne.runPushOperation(PushOne.java:267) 
    at com.googlesource.gerrit.plugins.replication.PushOne.access$000(PushOne.java:78) 
    at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:240) 
    at com.googlesource.gerrit.plugins.replication.PushOne$1.call(PushOne.java:237) 
    at com.google.gerrit.server.util.RequestScopePropagator$5.call(RequestScopePropagator.java:222) 
    at com.google.gerrit.server.util.RequestScopePropagator$4.call(RequestScopePropagator.java:201) 
    at com.google.gerrit.server.git.PerThreadRequestScope$Propagator$1.call(PerThreadRequestScope.java:75) 
    at com.googlesource.gerrit.plugins.replication.PushOne.run(PushOne.java:237) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) 
    at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:360) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:724) 
Caused by: com.jcraft.jsch.JSchException: reject HostKey: github.com 
    at com.jcraft.jsch.Session.checkHost(Session.java:780) 
    at com.jcraft.jsch.Session.connect(Session.java:342) 
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:116) 
    ... 25 more 

Я уже зарегистрировал ключ RSA пользователя Геррит в github.com на моем счете.

При попытке запуска команды REPLICATE вручную,

ssh -p 29412 [email protected] gerrit replicate gerrit_prj_1 

Я получаю ошибку,

gerrit: replicate: not found 

Пожалуйста, помогите

+3

Вы пытаетесь вызвать репликацию с помощью неправильной команды. См. [Документация] (https://review.typo3.org/plugins/replication/Documentation/cmd-start.html). Правильный синтаксис: 'ssh -p 29418 review.example.com начало репликации'. – StephenKing

+0

@StephenKing, спасибо. Ваша команда работает. – Virtual

ответ

2

Если у вас есть доступ к серверу Геррит, вы можете использовать StephenKinganswer и добавьте файл ~/.ssh/config, в котором укажут, где использовать ключ:

Host github.com 
    User git 
    IdentityFile /path/to/the/private/key 
    StrictHostKeyChecking no 
    UserKnownHostsFile /dev/null 

Но если вы использовали по умолчанию id_rsa и id_rsa.pub (который должен был подхвачен SSH), а затем проверить на том же сервере, Геррит значение $HOME, как я уже в previous answer.

Как StephenKing упоминает in the comments:

The part of the error message to helps identifying the problem is rejected HostKey: github.com .

Если ssh не найти правильный id_rsa(.pub) в $HOME/.ssh, то он ищет ~/.ssh/config файл с записью «github.com» в нем, который бы сказать SSH, где найти правый ключ ssh для подключения к серверу, представленному «github.com».


Вопрос был:

Since I started gerrit with sudo, it was running as root. now I changes and it works fine

Так что, если ключи были зарегистрированы в пользовательском HOME, они не были видны с помощью процесса, начатого корнем.

+0

А, я собирался написать то же самое :-). Это решение должно помочь, и проблема в том, что ваш клиент ssh (в контексте пользователя Gerrit) еще не принимает ключ github.com (вы можете решить это, я попал в файл 'known_hosts' или отключив хост проверка ключа, как показано VonC. – StephenKing

+0

Часть сообщения об ошибке, помогающая идентифицировать проблему, является «отвергнутой HostKey: github.com». – StephenKing

+0

@StephenKing да, я отредактировал ответ, чтобы лучше объяснить, почему. – VonC

Смежные вопросы