我们正在使用 Mercurial 实现并通过公钥身份验证将数据发送到存储库服务器,该服务器获取最新修订版并通过钩子将其推送到我们的 Web 服务器,同样使用公钥身份验证(因此使用公钥身份验证的两个连接)。它可以工作,但即使是很小的提交也需要 5-10 秒才能完成。
我认为这是因为公钥认证,因为我知道使用公钥认证通过终端连接时,登录并显示横幅需要一两秒钟。有什么方法可以让这个(登录)更快吗?
顺便问一下,除了关闭之外,还有什么方法可以阻止 ssh 横幅进入标准输出吗?它会在返回状态中弹出,非常烦人。
答案1
echo "GSSAPIAuthentication no" > /home/`whoami`/.ssh/config
之前 : 0m15.512s
经过:0分0.611秒
答案2
速度慢的反向 DNS 也会导致这种情况。您可以尝试将其添加UseDNS no
到 Mercurial 服务器的sshd_config
文件中,看看是否有帮助吗?
答案3
我弄清楚了控制主控,并将其用于第二次连接,使第一次连接后的连接几乎立即完成。我认为 2 秒只是建立连接时连接过程的一部分。选择特定键并执行各种命令行选项平均不会大大缩短时间。
答案4
如果客户端有大量 ssh 密钥,则它往往会减慢整个身份验证过程,因为它需要发送每个公钥来匹配服务器的 authorized_keys。
另外,如果您的服务器已经有点慢,它就会很容易降级。