我们正在使用一个Mercurial实现,并通过公共密钥authentication发送数据到一个存储库服务器,该authentication采用最新版本,并通过使用公共密钥authentication(因此两个使用公钥authentication的连接)的钩子将其推送到我们的Web服务器。 它可以工作,但即使是很小的提交也需要5-10秒。
我相信这是由于公钥authentication,因为我知道当通过terminal使用公钥authentication连接时,需要一两秒钟才能login并显示标题。 有没有办法让这个(login)更快?
在一个侧面说明是否有任何方法来保持ssh的标语不会去标准输出,除了把它closures? 它popup返回状态,很烦人。
echo "GSSAPIAuthentication no" > /home/`whoami`/.ssh/config
之前:0分15秒15秒
之后:0m0.611s
慢反向的DNS也可以导致这种情况。 你可以尝试添加UseDNS no到你的Mercurial服务器的sshd_config文件,看看是否有帮助?
我想到了控制大师,并使用第二个连接来build立第一次连接后的连接几乎是瞬间的。 我打算2秒只是build立连接时连接过程的一部分。 select特定的键,并做各种命令行选项平均不会提高很多倍。
如果你在客户端有很多的ssh密钥,它会减慢整个authentication过程,因为它需要发送每个公钥来匹配服务器的authorized_keys。
另外,如果你的服务器已经有点慢了,它会很容易降级。