如何加快SSH登录?


23

在我家外面,每当我使用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

Answers:


38

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


6
更好地解决您的DNS配置。
托尔比约恩Ravn的安徒生

效果很好!谢谢!登录时间从20-30秒缩短到不到5秒:)
AntonioCS,2010年

3
UseDNS启用有什么好处?
ændrük

意识到!当您在指令UserDNS之后设置Match指令时,您会收到错误消息:is not allowed within a Match如果重新启动sshd,则会阻塞,您将无法ssh进入服务器。我犯了这个错误,我被锁定在服务器之外。一定要记住不要在底部添加任何指令,sshd_config如果你Match在它的指令。
阿德里亚诺·罗莎

6

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

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

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

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

ssh -4 login@hostname

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

Host *
   AddressFamily inet

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


3

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

-o "PreferredAuthentications=password"

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


2
为什么要完全使用密码?为什么不按键?
TJ Ellis 2010年

1
简单:因为您可能不允许使用按键!(sshd的未配置为使用它们,不好的用户文件权限,etc.9
perseo22

2

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

touch ~/.hushlogin

关闭UseDNS并不会带来太大变化,但可能有助于降低连接速度。


1
-1:仅在成功登录后才显示MOTD。这不会导致密码提示出现得更快。
Asa Ayers 2010年

2
是的,但仍然是有用的评论。
sebastian_k

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.