Как ускорить вход по 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
grokus
источник

Ответы:

38

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

Марко Чеппи
источник
6
Лучше исправить вашу конфигурацию DNS.
Турбьерн Равн Андерсен
Это отлично сработало !! Благодарность! Время входа в систему
сократилось
3
В чем преимущество UseDNSвключения?
Ондрюк,
Будь в курсе! когда вы устанавливаете директиву 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 любого другого метода аутентификации и ускоряет запрос пароля!)

perseo22
источник
2
Зачем вообще использовать пароли? Почему не ключи?
Ти Джей Эллис
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 секунд.
джейкиб