Сегодня история о том, как проект выжил потому, что разработчик нарушил правила безопасности.
При работе с серверами считается хорошим тоном, а по факту базовым минимумом, полностью отключать вход по паролю и использовать SSH-ключи.
Если по-простому, SSH-ключ это файл на вашем компьютере, который по сути выполняет роль пароля, но оооочень длинного. Настолько длинного, что подобрать его перебором практически нереально.
Немного духоты ради точности.
Обычно вместе с этим ещё:
+ меняют стандартный порт SSH,
+ запрещают вход под root и заводят отдельного пользователя,
+ для продакшна ограничивают доступ по белым IP или используют port knocking
Короче, всё должно быть правильно, всё должно быть безопасно.
И вот у нас, на одном из проектов, случилась экстраординарная ситуация. Единственный разработчик потерял доступ к своему ПК.
А вместе с ним и доступ к серверу с проектом.
Через панель управления хостингом или поддержку сбросить root-доступ было невозможно, только полная переустановка системы.
Бэкапы базы данных были, но сильно устаревшие. А в Git только бэк, без фронта.
Караул. Пиши пропало.
Но если бы всё было настроено "как положено", проекта бы больше не было.
Этому проекту повезло.
Разработчик, вопреки всем стандартам безопасности, ходил на сервер по паролю, а не по SSH-ключу.
И более того, он этот пароль вспомнил и спокойно зашёл по SSH и восстановил доступ к проекту.
Формально всё было капец как небезопасно.
Но фактически именно это и спасло проект.
Плюс, настоящая уязвимость была не в SSH, а в том, что доступ был у одного человека.