
Укрепление SSH
Заблокируйте SSH на Debian/Ubuntu одной командой: новый порт, запрет входа root, аутентификация по ключу, опционально UFW и Fail2Ban.
При запуске скрипт определяет вашу ОС и показывает настройки перед запросом на продолжение:

На Debian/Ubuntu:
sudo apt-get install -y git
rm -rf ssh-hardening
git clone https://github.com/spookey007/ssh-hardening.git
cd ssh-hardening
Запускайте это в любое время, когда хотите получить последнюю версию скрипта.
chmod +x ssh_harden.sh script.sh
Если пропустите этот шаг, при запуске ./ssh_harden.sh может появиться ошибка "command not found". В этом случае используйте шаг 5 с sudo bash ssh_harden.sh.
SSH_PUB_KEY)Linux / macOS
ssh-keygen -t ed25519 -C "[email protected]"
Нажмите Enter для пути по умолчанию (~/.ssh/id_ed25519). Опционально: задайте парольную фразу.
Покажите ваш публичный ключ (скопируйте его в SSH_PUB_KEY):
cat ~/.ssh/id_ed25519.pub
Windows (PowerShell или Git Bash)
ssh-keygen -t ed25519 -C "[email protected]"
Нажмите Enter для пути по умолчанию. Опционально: задайте парольную фразу.
Покажите ваш публичный ключ:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubtype %USERPROFILE%\.ssh\id_ed25519.pubСкопируйте всю строку (начинается с ssh-ed25519 ...). Это ваш SSH_PUB_KEY.
Замените значения на свои и выполните:
sudo SSH_USER=kamaileo \
SSH_PASS='YourStrongPassword123!' \
SSH_PORT=49221 \
PORTS="5060,5061,10000-20000" \
SSH_PUB_KEY="ssh-ed25519 AAAA... you@yourmachine" \
./ssh_harden.sh
Если появляется "command not found", используйте:
sudo bash ssh_harden.sh
(с теми же SSH_USER=... SSH_PASS=... и т.д. впереди).
В новом терминале подключитесь по новому порту (не 22):
ssh -p 49221 kamaileo@YOUR_SERVER_IP
Используйте порт и пользователя, которые вы задали. Закрывайте исходную сессию только после того, как убедитесь, что вход и sudo работают.
Каждый раз используйте новый порт. После усиления SSH больше не работает на порту 22. Всегда подключайтесь с помощью:
ssh -p <ВАШ_ПОРТ> <ПОЛЬЗОВАТЕЛЬ>@<IP_СЕРВЕРА>
Пример: ssh -p 49221 [email protected]
Сохраните вывод скрипта после завершения. В конце скрипт выводит сводку с вашим пользователем, портом, командой подключения и информацией о том, был ли задан пароль. Скопируйте или сделайте скриншот этого блока и сохраните в надёжном месте. Если вы потеряете SSH-ключ, забудете порт или пароль, эта запись поможет вам восстановить доступ или переподключиться (например, через консоль/VNC с тем же пользователем и паролем).
Скрипт выводит всё необходимое: пользователь, порт, статус UFW/Fail2Ban и точную команду ssh -p .... Никаких догадок.
Если SSH_USER уже есть на сервере, скрипт не создаёт нового пользователя и не меняет пароль. Он только:
sudo~/.ssh/authorized_keys, если вы передали SSH_PUB_KEYТаким образом, вы можете запустить его снова для "только усиления" без изменения существующего пароля.
На неподдерживаемых ОС скрипт выводит Coming soon 😊 и завершается без изменений.
SSH_PUB_KEY, чтобы вы могли войти после отключения аутентификации по паролю.ssh -p ПОРТ пользователь@сервер.Если этот скрипт сэкономил вам время или избавил от головной боли, вы можете поддержать проект разовым пожертвованием.
BTC: 3L1Gc4avD4Bqoi2F9aq6z4heT13fXA8DZ9
В любом случае спасибо.
| Переменная | Пример | Что делает |
|---|
SSH_USER | kamaileo | Имя пользователя (создаётся, если отсутствует; если существует, пароль остаётся без изменений). |
SSH_PASS | 'YourPass123!' | Пароль только для новых пользователей. Используйте надёжный. |
SSH_PORT | 49221 | Порт SSH. Вы будете использовать: ssh -p 49221 пользователь@сервер. |
PORTS | "5060,5061,10000-20000" | Дополнительные порты для UFW (опционально). |
SSH_PUB_KEY | "ssh-ed25519 AAAA..." | Ваш публичный ключ. Настоятельно рекомендуется, чтобы не потерять доступ. |
| ОС | Поддерживается | Протестировано | Установка git |
|---|
| Debian 12 x64 | ✅ | ✅ | sudo apt-get install -y git |
| Debian 11/10, Ubuntu 24/22/20 | ✅ | ❌ | sudo apt-get install -y git |
| RHEL / Rocky / Alma / CentOS | ❌ | ❌ | sudo yum install -y git |
| Fedora | ❌ | ❌ | sudo dnf install -y git |
| Arch | ❌ | ❌ | sudo pacman -Syu git |
| openSUSE | ❌ | ❌ | sudo zypper install -y git |