通过密钥SSH非常慢

从机器上用SSH连接的钥匙突然变得非常慢(约10秒!)。 据我所知,这不是一个服务器或DNS问题。

Ubuntu 15.04 x86_64上,简单的apt-get install kubuntu-desktop和一些与KDE相关的小问题突然出现了。

运行ssh -vv ...显示了它在最后一行的等待时间(大部分~10sec …):

OpenSSH_6.7p1 Ubuntu-5ubuntu1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /home/neuronq/.ssh/config debug1: /home/neuronq/.ssh/config line 1: Applying options for XXX.com debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for *

…和我的/etc/ssh/ssh_config包含这个(我没有粘贴注释掉的行):

 Host * SendEnv LANG LC_* HashKnownHosts yes GSSAPIAuthentication no GSSAPIDelegateCredentials no 

Kubuntu桌面安装有没有办法突然导致这种放缓(某些keystore /钱包奇怪的事情)? (另外,在KDE中,除了在terminal上手动执行ssh-add并input密钥密码之外,我无法通过密钥获得sshlogin的function,但是我已经完全放弃了KDE,回到团结,所以我不再关心这个…但它可能是相关的)

你有通过密码authentication相同的麻烦,或者这真的与密钥authentication有关吗?

您的客户端可能会提供适当的DNSparsing,但是它是您的服务器,无论如何,您将尝试从您的IP地址执行反向查找; 这可以解释延迟,因为@ kasperd说。 但从经验来看,这不会超过几秒钟。

SSH终于成功authentication了吗? 如果是这样,它真的看起来像一个DNS问题。 如果您的configuration/pipe理员允许,请尝试将您的IP /主机名添加到服务器的/ etc / hosts中。 这将绕过服务器端的DNSparsing。 如果您不configuration您的DNS在客户端的服务器端提供正确的反向查找,请使用DNS useDNS no ,如@ kasperd所述,将其放在服务器的/etc/ssh/sshd_config上。

如果你的pipe理员不这样做,那么你就无能为力了。

编辑:KDE / Unity或任何桌面pipe理器绝对没有办法可能导致这种放缓。 我会惊讶于这种情况。 但是,您需要提供ssh-add来使用您的密钥,这一点很有趣。 该命令用于使您的身份validation代理记住您为密钥所用的密码。 要指定要使用的密钥,请通过命令行或在~/.ssh/config文件中执行:

 # in your command line: ssh -i /path/to/your/private/key user@host # or in your /home/$user/.ssh/config file: # (on command line later, simply use ssh user@host or ssh host if # user locally and remotely are the same Host $myhost IdentityFile /path/to/your/private/key IdentitiesOnly yes 

对我来说,实际的解决scheme是在我的本地主机上添加AddressFamily inet~/.ssh/config用于相应的主机,或者在/etc/ssh/ssh_config用于Host *

问题的原因很可能是最近升级到Ubuntu 15.05,并且ssh正在尝试使用IPv6(但是失败,但是延迟很大)。