Як пришвидшити вхід в SSH?


23

Поза межами мого будинку, коли я входжу на свій сервер Ubuntu за допомогою SSH, мені потрібно близько 6 секунд, щоб отримати запит на отримання пароля, однак, коли я входжу на свій веб-хостинг-сервер, це займає близько 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

Відповіді:


38

Причина номер один, яку я бачив для цього, - це параметр конфігурації в SSHD, UseDNSця опція (включена за замовчуванням) змушує сервер виконувати роздільну здатність DNS для вхідних запитів. Тривала операція. Я бачив, як дані про реєстрацію тривають від однієї хвилини плюс очікування запиту пароля до декількох секунд. Якщо ви редагуєте /etc/ssh/sshd_configна сервері і додаєте (якщо його немає) внизу, UseDNS noтоді перезапустіть демон SSH з service ssh restartвами, ви побачите покращення при наступному підключенні.


6
Краще виправити конфігурацію DNS.
Thorbjørn Ravn Andersen

Це спрацювало чудово !! Спасибі! Час входу зайнявся від 20-30 секунд до менш ніж 5 секунд :)
AntonioCS

3
Яка користь від UseDNSвключення?
ændrük

Бережись! коли ви встановите директиву UserDNSпісля Matchдирективи, ви отримаєте помилку: is not allowed within a Matchзаблокуйте, якщо ви перезапустите sshd, ви не зможете ssh на свій сервер. Я зробив цю помилку, і мене заблокували з мого сервера. Завжди пам’ятайте, що не додайте жодної директиви внизу, sshd_configякщо у вас є Matchдиректива.
Адріано Роза

6

Для мене причина № 2 (після параметра UseDNS на стороні сервера) для довгого входу в сеанс SSH - це спроби підключення на стороні клієнта за допомогою IPv6 (що, очевидно, неправильно налаштовано в моїй мережі - або майже в будь-якій іншій мережі, в цьому відношенні).

Див. HOWTO: Прискорити вхід у SSH на форумах Ubuntu.

"Рішення" полягає в включенні лише IPv4:

1) або для даного виклику клієнта SSH:

ssh -4 login@hostname

2) або глобально в конфігурації клієнта ssh у /etc/ssh/ssh_config:

Host *
   AddressFamily inet

Звичайно, було б правильніше правильно налаштувати IPv6 у вашій мережі, але хто має на це час :)


3

Спробуйте додати наступну опцію за допомогою команди ssh:

-o "PreferredAuthentications=password"

(це не дозволяє ssh домовлятися про будь-який інший метод аутентифікації та прискорює підказку пароля!)


2
Навіщо взагалі використовувати паролі? Чому б не ключі?
TJ Ellis

1
Легко: тому що вам можуть не дозволити використовувати клавіші! (sshd не налаштований на їх використання, неправильні дозволи користувачів на файли тощо. 9
perseo22

2

Додатково введіть це на віддаленій машині (як користувач, який ви входите в систему як), щоб придушити будь-які повідомлення MOTD:

touch ~/.hushlogin

Це не має такої різниці, як відключення, UseDNSале це може допомогти при повільних з'єднаннях.


1
-1: MOTD відображається лише після успішного входу. Це не призведе до того, що швидше з’явиться запит пароля.
Аса Айерс

2
Правда, але все ж корисний коментар.
sebastian_k

2

Оскільки ви використовуєте досить стару версію Ubuntu, це може бути саме ця помилка: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/300151

Перезапуск dbus ( /etc/init.d/dbus restart) може допомогти.


У мене оновлено 10.04 вікна з 9.04 та 9.10. Перезапуск dbus зменшився time ssh remoteServer dateз 8 до 0,5 с.
djeikyb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.