Подключение по SSH

Создание SSH-ключей и безопасное подключение к VPS серверу из Windows, macOS и Linux

vps3 min read

Создание SSH-ключей

SSH-ключи безопаснее паролей: они длиннее, не передаются по сети и не могут быть подобраны брутфорсом.

Создайте пару ключей

Откройте терминал (macOS/Linux) или PowerShell (Windows) и выполните:

bash
# Создать ключ 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 для дополнительной защиты или оставьте пустым.

Добавьте публичный ключ на сервер

bash
# Автоматически (из локальной машины)
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@IP_СЕРВЕРА

# Или вручную — скопируйте содержимое публичного ключа
cat ~/.ssh/id_ed25519.pub
# и добавьте его в ~/.ssh/authorized_keys на сервере

Подключитесь к серверу

bash
ssh root@IP_СЕРВЕРА

# Или если используете нестандартный ключ
ssh -i ~/.ssh/id_ed25519 root@IP_СЕРВЕРА

Настройка SSH конфига

Файл ~/.ssh/config позволяет создавать псевдонимы для серверов и избавляет от необходимости каждый раз вводить IP и параметры:

~/.ssh/config
# Основной сервер 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

После настройки конфига подключение выглядит так:

bash
# Вместо: 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-конфига
PuTTYGUIКлассический клиент, использует формат .ppk для ключей
MobaXtermGUIВстроенный файловый менеджер SFTP
VS Code Remote-SSHIDEРазработка прямо на сервере
ℹ️

PuTTY и формат ключей

PuTTY использует собственный формат .ppk для приватных ключей. Если у вас уже есть ключ в формате OpenSSH, конвертируйте его через утилиту PuTTYgen (меню Conversions → Import Key).

Туннелирование и проброс портов

SSH-туннели позволяют безопасно обращаться к закрытым сервисам на сервере:

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
# Установить 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