it-swarm.cn

如何加快SSH登录?

在我家外面,每当我使用SSH登录到Ubuntu服务器时,大约需要6秒钟才能获得提示输入密码的提示,但是,当我登录到Web托管服务器时,大约需要1秒钟。我该怎么做才能加快速度?

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.1"
$ ssh -v
OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 Oct 2007
$ cat /proc/cpuinfo
model name      : Dual-Core AMD Opteron(tm) Processor 1210
cpu MHz         : 1000.000
cache size      : 1024 KB
$ cat /proc/meminfo
MemTotal:      2074528 kB
23
grokus

我看到的第一个原因是SSHD中的配置选项UseDNS此选项(默认情况下启用)使服务器对传入的请求执行DNS解析。耗时的操作。我发现登录时间从一分钟加等待密码提示到几秒钟。如果您在服务器上编辑/etc/ssh/sshd_config并在底部UseDNS no处添加(如果不存在),然后使用service ssh restart重新启动SSH守护程序,则下次连接时应该会看到一个改进。

37
Marco Ceppi

对我来说,长时间进行SSH会话登录的原因2(在服务器端UseDNS选项之后)是客户端尝试使用IPv6(显然,在我的网络或几乎所有其他网络上未正确设置)进行连接,对于这个问题)。

请参阅 HOWTO:加快SSH登录 在Ubuntu论坛上。

“解决方案”是仅启用IPv4:

1)对于给定的SSH客户端调用:

ssh -4 [email protected]

2)或在/etc/ssh/ssh_config中的ssh客户端配置中全局使用:

Host *
   AddressFamily inet

当然,在您的网络上正确设置IPv6会更正确,但是谁有时间做:)

6
Aleksander Adamowski

尝试使用ssh命令添加下一个选项:

-o "PreferredAuthentications=password"

(这可防止ssh协商任何其他身份验证方法,并加快了密码promtp!)

3
perseo22

此外,在远程计算机上(以您登录时的用户身份)键入此命令可禁止显示任何MOTD消息:

touch ~/.hushlogin

与关闭UseDNS并没有太大的区别,但它可能有助于降低连接速度。

2
Oli

当您使用的是较旧的Ubuntu版本时,很可能是以下错误: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/300151

重新启动dbus(/etc/init.d/dbus restart)可能会有所帮助。

2
Marcel Stimberg