Ускоряем логин через SSH в Ubuntu в 100 раз
Долгое время я мучился ужасно медленным удаленным логином на свои Ubuntu сервера (все 2 ). Ужасно медленно в данном случае - 2-3 секунды. Не то чтобы это было совсем фатально, но когда логин через ключ - хочется чтобы все работало мгновенно - в конце концов, у нас не 486SX.Длительное гугление приводило только к стандартным решениям:
- UseDNS no в /etc/ssh/sshd_config - ускоряет логин в случае тормозного DNS. В моём случае стоял локальный кеширующий DNS, потому и так все было быстро.
- Принудительное указание IPv4 в SSH клиенте - особо не помогло, видимо не у всех тормозит
Оказалось, используемый нашими дедами для реально полезных задач /etc/motd файл в Ubuntu используется весьма "креативно" - до 10-й версии motd перегенерировался по задаче crontab-а, которая выполняла кучу задач, в том числе и проверку обновлений на сервере canonical (и многое другое). Отключалось через 'update-motd --disable'.
В 10-й версии это уже так просто не работает, т.к. генерацию motd перенесли в модули PAM, которые выполняются непосредственно в момент логина и отжирают эти самые драгоценные 2-3 секунды времени, пока пользователь в нетерпении смотрит на черное окно терминала. Итак, берем скальпель:
- В файлах /etc/pam.d/login и /etc/pam.d/sshd выпиливаем начисто строчки "session optional pam_motd.so"
- Сносим нафиг компоненты платного мониторинга, установленные по дефолту:
aptitude remove landscape-client landscape-common
После этого можно наконец отредактировать по вкусу /etc/motd
В /etc/ssh/sshd_config смотрим, есть ли 'PrintMotd yes', если он вам все еще нужен.
Готово, логин на сервер теперь мгновенный :-)
PS. А если логинитесь с ключом, то RSA ключ проверяется быстрее чем DSA при равной длине (раза в 4) - и даже на современном железе на ключах от 2048 можно увидеть разницу.