Ssh gerrit到github的复制:jsch问题

Ssh gerrit到github的复制:jsch问题,ssh,github,jsch,gerrit,Ssh,Github,Jsch,Gerrit,正在尝试设置从gerrit到my github repo的复制。获取此堆栈跟踪: [2011-09-20 00:11:58470]错误com.google.gerrit.server.git.PushReplication:无法复制到git@github.com:myuser/myrepo.git org.eclipse.jgit.errors.TransportException:git@github.com:myuser/myrepo.git:Session.connect:java.net

正在尝试设置从gerrit到my github repo的复制。获取此堆栈跟踪:

[2011-09-20 00:11:58470]错误com.google.gerrit.server.git.PushReplication:无法复制到git@github.com:myuser/myrepo.git
org.eclipse.jgit.errors.TransportException:git@github.com:myuser/myrepo.git:Session.connect:java.net.SocketTimeoutException:Read超时
位于org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:138)
位于org.eclipse.jgit.transport.sshttransport.getSession(sshttransport.java:121)
位于org.eclipse.jgit.transport.TransportGitsh$SshFetchConnection。(transportGitsh.java:248)
位于org.eclipse.jgit.transport.transportGitsh.openFetch(transportGitsh.java:147)
位于com.google.gerrit.server.git.PushOp.listRemote(PushOp.java:358)
在com.google.gerrit.server.git.PushOp.generateUpdates(PushOp.java:312)
位于com.google.gerrit.server.git.PushOp.pushVia(PushOp.java:258)
位于com.google.gerrit.server.git.PushOp.runImpl(PushOp.java:213)
在com.google.gerrit.server.git.PushOp.run(PushOp.java:166)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
在java.util.concurrent.FutureTask.run(FutureTask.java:138)处
位于java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
位于java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
位于com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:324)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)

原因:com.jcraft.jsch.JSchException:Session.connect:java.net.SocketTimeoutException:Read超时
在com.jcraft.jsch.Session.connect(Session.java:504)
位于org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:128)

我的配置文件如下:

replication.config:

[remote "github"]
url = git@github.com:myuser/${name}.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
timeout = 5
replicationDelay = 0
authGroup = Administrators
secure.config:

[database]
    password = secret
[ssh]
    file = /home/gerrit2/.ssh/config
.ssh/config:

Host github.com:
  IdentityFile ~/.ssh/id_rsa
  PreferredAuthentications publickey
我试着跑步

ssh -i etc/ssh_host_dsa_key git@github.com
ssh -i etc/ssh_host_rsa_key git@github.com
ssh -i ~/.ssh/id_rsa git@github.com
ssh -i ~/.ssh/id_dsa  git@github.com
并且能够“点击”github以便导入密钥OK,不确定问题出在哪里,
感谢您的建议。

作为异常的名称
SocketTimeoutException
说明(及其):

表示套接字读取或接受发生超时

查看以下内容:

远程..超时

在放弃并声明远程端之前等待网络读写完成的秒数 他没有反应。如果为0,则没有超时,推送客户端将无限期等待

超时应该足够大,以便将对象大部分转移到另一端。1秒可能太小了 对于较大的项目,尤其是在WAN链路上,10-30秒是一个更合理的超时值

默认为0秒,无限期等待

您的值为5秒,您可以使用更大的值进行尝试


(问题只与JSch间接相关-JSch只需将超时参数传递给它创建的套接字。我应该记录此超时的单位是秒还是毫秒。)

正如异常的名称
SocketTimeoutException
所述(及其):

表示套接字读取或接受发生超时

查看以下内容:

远程..超时

在放弃并声明远程端之前等待网络读写完成的秒数 他没有反应。如果为0,则没有超时,推送客户端将无限期等待

超时应该足够大,以便将对象大部分转移到另一端。1秒可能太小了 对于较大的项目,尤其是在WAN链路上,10-30秒是一个更合理的超时值

默认为0秒,无限期等待

您的值为5秒,您可以使用更大的值进行尝试


(问题只是间接地与JSch有关-JSch只需将超时参数传递给它创建的套接字。我应该记录此超时的单位为JSch-秒或毫秒。)

SocketTimeoutException表示套接字读取或接受时发生了超时。您是否尝试增加超时值?谢谢,我以前应该尝试过!在replication.config中将timeout设置为60(而不是5)后,效果非常好。我不认为解决方案会那么简单,我只想排除一个可能的原因。我把这一评论(加上一些附加信息)作为一个回答。如果它解决了您的问题,请随意接受它(使用绿色复选标记按钮)。SocketTimeoutException表示套接字读取或接受发生超时。您是否尝试增加超时值?谢谢,我以前应该尝试过!在replication.config中将timeout设置为60(而不是5)后,效果非常好。我不认为解决方案会那么简单,我只想排除一个可能的原因。我把这一评论(加上一些附加信息)作为一个回答。如果它解决了您的问题,请随意接受它(使用绿色复选标记按钮)。