132

Как я ускорил SSH-аутентификацию в 178 раз

Если каждое SSH-подключение тормозит на несколько секунд, со временем это выливается в часы потерянного времени. Особенно, если ты постоянно работаешь с серверами для автоматизации действий. В моём случае расшифровка SSH-ключа при коннекте занимала 4.6508 секунды – пока я не оптимизировал процесс, сократив его до 0.0261 секунды. Рассказываю, как именно.

Бенчмарк

Бенчмарк

Почему всё было так медленно

🔹 OpenSSH + пароль  

Я использовал SSH-ключи в OpenSSH-формате с паролем (passphrase). OpenSSH шифрует их с помощью bcrypt (или аналога KDF) с огромным числом итераций – это круто для безопасности (хотя и другие методы не менее безопасные), но ОЧЕНЬ медленно.  

Когда исполнительный сервер пытался расшифровать ключ, процесс занимал 4+ секунды.

🔹 Ключ загружался постоянно  

Деплой, выполнение задач, тестирование – при каждом подключении ключ снова и снова расшифровывался. Все это дико бесило и замедляло работу.

---

Как ускорить SSH-авторизацию?

1️⃣ Перешёл с OpenSSH на PKCS8  

Главный трюк – отказаться от шифрования bcrypt внутри OpenSSH и использовать PKCS8 с PBKDF2, где можно настроить разумное количество итераций или использовать дефолтные настройки

📌 Разница:  

OpenSSH (bcrypt, cost=16–18)секунды расшифровки  

PKCS8 (PBKDF2, 10k–20k итераций | дефолт)миллисекунды  

Публичная часть ключа всё ещё в OpenSSH-формате (для `authorized_keys`), но приватная теперь PKCS8.

2️⃣ Дополнительное шифрование AES-256  

Чтобы ключ не лежал в открытом виде, сверху добавил AES-256.  

Это дешёвая по вычислениям операция, но она не даёт ключу валяться в чистом виде на диске (даже если это S3).

Теперь процесс:

🔸 AES-256≈0.001s  

🔸 PKCS8 (PBKDF2)<0.02s  

Общее время расшифровки < 0.03 секунды вместо 4.6508 секунд.

Итог: ускорение в 178 раз 🚀  

Бенчмарк показал разницу в 17 739%. Теперь SSH-аутентификация работает в сотни раз быстрее, что значительно ускоряет деплой и управление серверами.

---

Дополнительные советы:

Отключить UseDNS и GSSAPIAuthentication в sshd_config, если задержка handshake.  

Убедись, что используешь gmp/openssl/sodium, а не чистый ЯП (иначе будут тормоза)  

Такая небольшая оптимизация дала огромный прирост скорости. Если у вас долго проходит авторизация – попробуйте такой подход 🥸

Web-технологии

548 постов5.8K подписчиков

Правила сообщества

1. Не оскорблять других пользователей

2. Не пытаться продвигать свои услуги под видом тематических постов

3. Не заниматься рекламой

4. Никакой табличной верстки

5. Тег сообщества(не обязателен) pikaweb

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества