Подключение по SSH
Создание SSH-ключей и безопасное подключение к VPS серверу из Windows, macOS и Linux
Создание SSH-ключей
SSH-ключи безопаснее паролей: они длиннее, не передаются по сети и не могут быть подобраны брутфорсом.
Создайте пару ключей
Откройте терминал (macOS/Linux) или PowerShell (Windows) и выполните:
# Создать ключ Ed25519 (рекомендуется)
ssh-keygen -t ed25519 -C "your@email.com"
# Или RSA 4096 (для совместимости со старыми системами)
ssh-keygen -t rsa -b 4096 -C "your@email.com"Нажмите Enter чтобы принять путь по умолчанию (~/.ssh/id_ed25519). Задайте passphrase для дополнительной защиты или оставьте пустым.
Добавьте публичный ключ на сервер
# Автоматически (из локальной машины)
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@IP_СЕРВЕРА
# Или вручную — скопируйте содержимое публичного ключа
cat ~/.ssh/id_ed25519.pub
# и добавьте его в ~/.ssh/authorized_keys на сервереПодключитесь к серверу
ssh root@IP_СЕРВЕРА
# Или если используете нестандартный ключ
ssh -i ~/.ssh/id_ed25519 root@IP_СЕРВЕРАНастройка SSH конфига
Файл ~/.ssh/config позволяет создавать псевдонимы для серверов и избавляет от необходимости каждый раз вводить IP и параметры:
# Основной сервер ahost.uz
Host kitserver
HostName 89.39.95.193
User deploy
IdentityFile ~/.ssh/id_ed25519
Port 22
# Тестовый сервер
Host kitdev
HostName 89.39.95.100
User ubuntu
IdentityFile ~/.ssh/id_ed25519После настройки конфига подключение выглядит так:
# Вместо: ssh -i ~/.ssh/id_ed25519 deploy@89.39.95.193
ssh kitserverПодключение из Windows
На Windows 10/11 SSH доступен встроенно через PowerShell или Windows Terminal. Для графического интерфейса используйте PuTTY или Windows Terminal.
| Клиент | Тип | Особенности |
|---|---|---|
| Windows Terminal + OpenSSH | Встроенный | Рекомендуется, полная поддержка SSH-конфига |
| PuTTY | GUI | Классический клиент, использует формат .ppk для ключей |
| MobaXterm | GUI | Встроенный файловый менеджер SFTP |
| VS Code Remote-SSH | IDE | Разработка прямо на сервере |
PuTTY и формат ключей
PuTTY использует собственный формат .ppk для приватных ключей. Если у вас уже есть ключ в формате OpenSSH, конвертируйте его через утилиту PuTTYgen (меню Conversions → Import Key).
Туннелирование и проброс портов
SSH-туннели позволяют безопасно обращаться к закрытым сервисам на сервере:
# Проброс локального порта 3306 к MySQL на сервере
# После этого подключайтесь к localhost:3306 в TablePlus/DBeaver
ssh -L 3306:localhost:3306 deploy@89.39.95.193 -N
# Проброс к Redis
ssh -L 6379:localhost:6379 deploy@89.39.95.193 -N
# Динамический SOCKS5 прокси через сервер
ssh -D 1080 deploy@89.39.95.193 -NЗащита SSH от брутфорса
# Установить Fail2ban
apt install fail2ban -y
# Создать локальный конфиг
cat > /etc/fail2ban/jail.local << 'CONF'
[sshd]
enabled = true
maxretry = 5
bantime = 3600
findtime = 600
CONF
systemctl enable --now fail2ban
# Проверить статус блокировок
fail2ban-client status sshd