
Что понадобится
- IP-адрес VPS, логин (обычно root или пользователь с sudo), порт SSH (по умолчанию 22).
- Клиент SSH:
- Windows 10/11: встроенный OpenSSH в Windows Terminal / PowerShell / CMD (рекомендуется) или PuTTY.
- macOS / Linux: предустановленный ssh в Terminal.
Вариант A — быстрое подключение с помощью пароля (Windows/macOS/Linux)
Команда (вместо user и 1.2.3.4 подставьте свои значения):
ssh user@1.2.3.4 -p 22
При первом входе подтвердите ключ хоста (yes), затем введите пароль.
Базовые опции клиента и аутентификации описаны в мануале OpenSSH.

Вариант B — защита с помощью ключа (рекомендуется)
Шаг 1. Сгенерируйте пару ключей на своем ПК
В Windows 10/11 откройте PowerShell и выполните:
ssh-keygen -t ed25519 -C «мой-комментарий»
# если ed25519 недоступен:
# ssh-keygen -t rsa -b 4096 -C «мой-комментарий»
Ключи появятся в C:\Users\<имя>\.ssh\ (или ~/.ssh на macOS/Linux): частный — без расширения (хранить в секрете), публичный — .pub (его копируем на сервер).

Подробности о генерации ключей в Windows: Microsoft/phoenixNAP/HowToGeek.
Шаг 2. Занесите публичный ключ на сервер
Способ 2.1 — автоматически (если есть парольный доступ):
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@1.2.3.4
Утилита сама добавит ключ в ~/.ssh/authorized_keys и установит права.
Способ 2.2 — вручную (через парольный вход):м
ssh user@1.2.3.4
mkdir -p ~/.ssh && chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# вставьте сюда содержимое вашего .pub, затем сохраните
chmod 600 ~/.ssh/authorized_keys
Не перепутайте: на сервер попадает только .pub, приватный ключ никогда не копируем. Права .ssh = 700, authorized_keys = 600 (иначе будет Permission denied (publickey)).

Шаг 3. Подключитесь с помощью ключа
ssh -i ~/.ssh/id_ed25519 user@1.2.3.4
Чтобы не вводить параметры каждый раз, добавьте профиль в ~/.ssh/config:
Host myvps
HostName 1.2.3.4
User user
Port 22
IdentityFile ~/.ssh/id_ed25519
Теперь достаточно ssh myvps. Документация по ssh_config (все ключевые параметры — Host, User, Port, IdentityFile).
Вариант C — через PuTTY (Windows), если удобнее GUI
- Загрузите и запустите PuTTY → вкладка Session → укажите Host Name (IP/домен), Port=22, Connection type=SSH → Saved Sessions → Save → Open.

2. Если вход по ключу: PuTTYgen → загрузите частный ключ или создайте новый → сохраните в формате .ppk, затем в PuTTY: Connection → SSH → Auth → Private key file for authentication — выберите .ppk.
3. (Опционально) Логуйте сессию и сохраняйте профиль, чтобы не вводить параметры каждый раз.
Проверка и базовая настройка
Проверить доступность порта 22 с вашего ПК:
# Linux/macOS:
nc -vz 1.2.3.4 22
# Windows (PowerShell):
Test-NetConnection 1.2.3.4 -Port 22
Permission denied (publickey) → проверьте:
- попал ли на сервер публичный ключ (.pub),
- права ~/.ssh (700) и authorized_keys (600),
- совпадает ли IdentityFile локально.
Усиление безопасности сервера (после настройки ключей)
Откройте /etc/ssh/sshd_config и проверьте (или добавьте) строки, затем перезапустите sshd:
# запрет прямого входа root (рекомендуется)
PermitRootLogin no
# запрет паролей, оставляем только ключи
PasswordAuthentication no
PubkeyAuthentication yes
# (опционально) нестандартный порт:
# Port 2222
sudo systemctl restart sshd
Поддерживаемые ключевые директивы и алгоритмы описаны на странице man sshd_config/ssh_config.
Копирование файлов
SCP:
scp -P 22 file.zip user@1.2.3.4:/home/user/
SFTP (интерактивно):
sftp -P 22 user@1.2.3.4
(Обидва способи входять до пакету OpenSSH-клієнта.)