Основы4 мин чтения

Как подключиться к VPS по SSH из Windows, macOS и Linux

SSH-клиент уже встроен в Windows, macOS и Linux. Показываем первый вход на сервер, переход с пароля на ключ, короткие имена для серверов и что делать с ошибками подключения.

SSH — основной способ работать с Linux-сервером: через него вы вводите команды, копируете файлы и настраиваете проект. Хорошая новость: отдельные программы почти никому не нужны — SSH-клиент уже встроен в Windows 10 и 11, macOS и любой Linux. Разберём, как подключиться к VPS в первый раз, как перейти с пароля на ключ и что делать с типичными ошибками.

Что понадобится. IP-адрес сервера, имя пользователя (на новом сервере это root) и пароль или SSH-ключ. В Verdian Cloud всё это есть в карточке сервера в личном кабинете.

Подключение из Windows

В Windows 10 и 11 клиент OpenSSH установлен по умолчанию. Откройте Терминал или PowerShell (правый клик по кнопке «Пуск») и выполните:

Терминал
ssh [email protected]

Вместо 203.0.113.10 подставьте IP-адрес своего сервера. Если Windows отвечает, что команда ssh не найдена, клиент отключён: включите его в «Параметры → Система → Дополнительные компоненты → Клиент OpenSSH».

Раньше для Windows обычно советовали PuTTY. Он по-прежнему работает, но у него свой формат ключей (.ppk), который нужно конвертировать через PuTTYgen. Если вы начинаете с нуля, проще пользоваться встроенным ssh — команды будут такими же, как во всех инструкциях в интернете.

Подключение из macOS и Linux

Откройте приложение «Терминал» и выполните ту же команду:

Терминал
ssh [email protected]

Если SSH на сервере слушает нестандартный порт, укажите его флагом -p:

Терминал
ssh -p 2222 [email protected]

Первое подключение: отпечаток сервера

При первом подключении клиент спросит, доверяете ли вы серверу:

text
The authenticity of host '203.0.113.10' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Это нормально: клиент ещё не знает ключ этого сервера. Введите yes — отпечаток сохранится в файле ~/.ssh/known_hosts, и в следующий раз вопроса не будет. Затем введите пароль. Символы при вводе пароля не отображаются — это тоже нормально, просто наберите его и нажмите Enter.

Вход по ключу вместо пароля

Пароль можно подобрать перебором, ключ — практически нет. Создайте пару ключей на своём компьютере — команда одинакова для Windows, macOS и Linux:

Терминал
ssh-keygen -t ed25519 -C "my-laptop"

Появятся два файла: закрытый id_ed25519, который никому не передаётся, и открытый id_ed25519.pub, который кладут на серверы.

  • Для нового сервера проще всего добавить открытый ключ в профиле личного кабинета и выбрать его при заказе или переустановке системы — он сразу окажется на сервере.
  • Для уже работающего сервера в macOS и Linux выполните ssh-copy-id [email protected]. В Windows такой команды нет — откройте на сервере файл ~/.ssh/authorized_keys и вставьте в него содержимое id_ed25519.pub одной строкой.

После этого ssh [email protected] будет пускать без пароля. Следующий шаг — запретить вход по паролю совсем; как сделать это безопасно, рассказали в статье «Первые 15 минут после покупки VPS».

Короткие имена для серверов

Чтобы не помнить IP-адреса, опишите серверы в файле ~/.ssh/config (в Windows — C:\Users\Имя\.ssh\config):

text
Host prod
    HostName 203.0.113.10
    User deploy
    IdentityFile ~/.ssh/id_ed25519

Теперь достаточно набрать ssh prod. Это же имя понимают scp, rsync и Git.

Как скопировать файлы на сервер

Для одного-двух файлов хватит scp, который идёт вместе с SSH:

Терминал
scp ./backup.sql [email protected]:/root/
scp [email protected]:/var/log/nginx/error.log ./

Для каталогов и регулярной синхронизации удобнее rsync — он передаёт только изменившиеся файлы. Если привычнее работать мышкой, подойдут WinSCP или FileZilla: выберите протокол SFTP и укажите те же адрес, пользователя и ключ.

Частые ошибки

СообщениеЧто значит и что делать
Connection timed outПакеты не доходят до сервера. Проверьте IP-адрес, что сервер включён, и правила файрвола.
Connection refusedСервер отвечает, но SSH на этом порту не слушает. Проверьте порт и что служба ssh запущена.
Permission denied (publickey)Сервер не принял ключ: на сервере нет вашего открытого ключа, выбран не тот пользователь или вход по паролю отключён.
REMOTE HOST IDENTIFICATION HAS CHANGEDУ сервера новый ключ — так бывает после переустановки системы. Если вы переустанавливали сервер сами, удалите старую запись: ssh-keygen -R 203.0.113.10.

Если доступа по SSH нет совсем. Например, вы закрыли порт 22 файрволом или сломали сетевые настройки. Откройте VNC-консоль сервера в личном кабинете: она работает прямо в браузере и не зависит от SSH и сети на сервере — это как подключить к серверу монитор и клавиатуру.

Что дальше

Когда подключение работает, настройте базовую защиту сервера и поставьте нужный стек. Если проект запускается в контейнерах, пригодится инструкция по установке Docker на VPS. А если сервера ещё нет, посмотрите сравнение тарифов — все они на AMD EPYC 7713 с NVMe.

Сервер, к которому можно подключиться через пару минут

VPS на AMD EPYC 7713 с NVMe: SSH-ключ из профиля добавляется при заказе, а VNC-консоль в браузере выручит, если SSH недоступен.