Как подключиться к Linux VPS по SSH: пароль, ключи и проверка fingerprint

06.08.26
Доступ к Linux VPS по SSH

После заказа Linux VPS провайдер передает IP-адрес сервера, имя пользователя и данные для первого входа. Для удаленного администрирования обычно используется SSH — защищенный протокол, через который выполняются установка программ, обновление системы, настройка сайтов и диагностика сервера.

Само подключение занимает одну команду, но при первом входе возникает несколько важных вопросов. Клиент показывает fingerprint сервера, пароль при вводе не отображается, а после настройки ключа соединение может завершиться сообщением Permission denied. Если сервер был переустановлен, SSH дополнительно предупреждает, что его идентификационный ключ изменился.

Наиболее опасная ошибка — отключить парольный вход или запретить доступ root до проверки новой учетной записи и SSH-ключа. В результате сервер продолжает работать, но администратор теряет возможность подключиться к нему по сети.

Безопасный порядок другой: сначала проверяется fingerprint, выполняется первое подключение, создается отдельный администратор, настраивается вход по ключу и тестируется новый сеанс. Только после этого можно ограничивать прежний способ аутентификации.

Какие данные нужны для подключения к VPS

Перед первым входом необходимо получить у провайдера или посмотреть в панели управления следующие сведения:

  • публичный IPv4- или IPv6-адрес сервера;
  • имя пользователя;
  • временный пароль, если используется парольная аутентификация;
  • порт SSH, если он отличается от стандартного;
  • fingerprint ключа сервера, если провайдер показывает его в панели;
  • доступ к веб-консоли или режиму восстановления.

Стандартный порт SSH — 22/TCP, но провайдер или администратор может использовать другое значение. В этом случае порт необходимо указывать явно при подключении.

ПараметрПримерДля чего используется
IP-адрес203.0.113.10Адрес удаленного сервера
Пользовательroot или adminuserУчетная запись, под которой выполняется вход
Порт22Сетевой порт службы OpenSSH
ПарольПередается провайдеромИспользуется при первом входе, если не настроен ключ
FingerprintSHA256:...Позволяет проверить идентификационный ключ сервера
Приватный ключid_ed25519Хранится на компьютере администратора

Подключение проходит по следующей схеме:


        Компьютер администратора
                   │
                   │ SSH-клиент
                   ▼
          Публичный IP-адрес VPS
                   │
                   │ TCP-порт 22
                   ▼
            Служба OpenSSH
                   │
          ┌────────┴────────┐
          ▼                 ▼
       Пароль         SSH-ключ
          │                 │
          └────────┬────────┘
                   ▼
          Командная оболочка
             Linux-сервера
Как читать схему: SSH-клиент устанавливает защищенное соединение со службой OpenSSH на сервере. После проверки ключа сервера пользователь подтверждает свою личность паролем или приватным SSH-ключом и получает доступ к командной оболочке.

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

Современные версии Windows, большинство дистрибутивов Linux и macOS уже содержат консольный клиент OpenSSH. Команда подключения в этих системах выглядит одинаково.

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

В Windows можно открыть PowerShell, Windows Terminal или командную строку и выполнить:

Командная строка Windows
ssh root@203.0.113.10

Вместо 203.0.113.10 указывается фактический адрес VPS. Если провайдер создал другого пользователя, необходимо заменить root на его имя.

Для подключения к нестандартному порту используется параметр -p:

Командная строка Windows
ssh -p 2222 adminuser@203.0.113.10

Если команда ssh не найдена, нужно проверить наличие компонента OpenSSH Client в дополнительных компонентах Windows.

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

В Linux и macOS команда выполняется в терминале:

Терминал Linux
ssh root@203.0.113.10

Проверить установленную версию клиента можно так:

Терминал Linux
ssh -V

В большинстве настольных систем OpenSSH установлен по умолчанию. Если клиент отсутствует, пакет устанавливается средствами используемой операционной системы.

Почему пароль не отображается

При вводе пароля терминал не показывает символы, точки или звездочки. Это штатное поведение SSH-клиента, а не зависание программы.

Пароль нужно ввести вслепую и нажать Enter. Перед повторной попыткой следует проверить:

  • раскладку клавиатуры;
  • состояние Caps Lock;
  • отсутствие пробелов при копировании;
  • правильность имени пользователя;
  • актуальность временного пароля.
Типичная ошибка: несколько раз вставлять пароль, потому что в терминале не появляются символы. Каждый ввод уже передается серверу после нажатия Enter, а большое количество неудачных попыток может активировать временную блокировку.

Что такое fingerprint и как его проверить

При первом соединении SSH-клиент еще не знает сервер и выводит его fingerprint — сокращенное представление открытого host key.

Сообщение выглядит примерно так:

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

Fingerprint относится не к учетной записи пользователя и не к его SSH-ключу. Он идентифицирует сам сервер, к которому устанавливается соединение.

После подтверждения ключ сохраняется на компьютере администратора в файле:

~/.ssh/known_hosts

При следующих подключениях SSH сравнивает полученный host key с сохраненным. Если ключ отличается, клиент предупреждает о возможной подмене сервера.

Где взять правильный fingerprint

Наиболее надежный вариант — сравнить fingerprint со значением, которое провайдер показывает в панели управления VPS.

Если в панели его нет, проверить ключ можно через доверенную консоль сервера. Для ключа ED25519 используется команда:

Терминал Linux
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Для RSA host key:

Терминал Linux
sudo ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

Полученное значение сравнивается с тем, которое показывает SSH-клиент.

Важно: команда ssh-keyscan может получить открытый ключ удаленного узла, но сама по себе не подтверждает его подлинность. Ключ нужно сравнивать со значением, полученным через доверенный канал.

Почему host key изменился

Предупреждение может появиться после:

  • переустановки операционной системы;
  • восстановления VPS из другого образа;
  • удаления и повторной генерации host key;
  • переноса IP-адреса на другой сервер;
  • изменения DNS-записи;
  • подмены удаленного узла или сетевой атаки.

Типичное сообщение:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Удалять старую запись из known_hosts можно только после подтверждения причины изменения.

Если сервер действительно был переустановлен, запись удаляется командой:

Терминал
ssh-keygen -R 203.0.113.10

Для подключения по доменному имени:

Терминал
ssh-keygen -R server.example.ru

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

Как настроить вход по SSH-ключу

При ключевой аутентификации на рабочем компьютере создается пара ключей:

  • приватный ключ остается у администратора;
  • публичный ключ размещается на сервере;
  • сервер проверяет, соответствует ли приватный ключ разрешенному публичному;
  • сам приватный ключ по сети не передается.

Для новых ключей обычно используется алгоритм ED25519. Он поддерживается современными версиями OpenSSH и создает компактные ключи.

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

Ключ создается на компьютере администратора:

Терминал
ssh-keygen -t ed25519 -C "admin@example.ru"

Комментарий после -C помогает определить владельца и назначение ключа. Вместо адреса электронной почты можно использовать имя администратора и рабочей станции.

По умолчанию создаются файлы:

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub
ФайлНазначениеМожно ли передавать
id_ed25519Приватный ключНет, должен храниться только у владельца
id_ed25519.pubПубличный ключДа, размещается на серверах

При создании желательно установить парольную фразу. Она защищает приватный ключ, если файл будет скопирован с компьютера администратора.

Важно: публичный ключ можно передавать и размещать на серверах. Приватный ключ нельзя отправлять по почте, загружать в тикет или копировать другим администраторам. Для каждого специалиста должна использоваться отдельная пара ключей.

Копирование публичного ключа на сервер

В Linux и macOS можно использовать:

Терминал Linux
ssh-copy-id adminuser@203.0.113.10

Для нестандартного порта:

Терминал Linux
ssh-copy-id -p 2222 adminuser@203.0.113.10

В Windows публичный ключ можно скопировать вручную. Его содержимое добавляется в файл:

/home/adminuser/.ssh/authorized_keys

На сервере каталог и файл можно подготовить так:

Терминал Linux
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

После добавления ключа нужно проверить владельца:

Терминал Linux
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys

Если файлы создавались под root для другого пользователя, владелец исправляется командой:

Терминал Linux
sudo chown -R adminuser:adminuser /home/adminuser/.ssh

Проверка входа по ключу

Не закрывая действующий сеанс, нужно открыть новый терминал и выполнить:

Терминал
ssh adminuser@203.0.113.10

Если используется отдельный файл ключа:

Терминал
ssh -i ~/.ssh/ipway-admin-ed25519 adminuser@203.0.113.10

Успешный вход необходимо проверить до отключения пароля и доступа root.

Совет администратора: держите первый SSH-сеанс открытым, пока не проверены новый пользователь, ключ, права sudo и повторное подключение. Этот сеанс позволит исправить ошибку без обращения к аварийной консоли.

Как упростить подключения через SSH config

Если администратор обслуживает несколько серверов, каждый раз вводить IP-адрес, пользователя, порт и путь к ключу неудобно. Эти параметры можно сохранить в пользовательском конфигурационном файле SSH-клиента.

В Linux и macOS используется файл:

~/.ssh/config

В Windows OpenSSH — файл:

%USERPROFILE%\.ssh\config

Пример записи:

Host ipway-app01
    HostName 203.0.113.10
    User adminuser
    Port 22
    IdentityFile ~/.ssh/ipway-admin-ed25519
    IdentitiesOnly yes

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

Терминал
ssh ipway-app01

Параметры означают:

  • Host — локальное имя подключения;
  • HostName — IP-адрес или DNS-имя сервера;
  • User — пользователь по умолчанию;
  • Port — порт SSH;
  • IdentityFile — приватный ключ;
  • IdentitiesOnly — использование только явно указанного ключа.

Для файла конфигурации и приватных ключей нужно ограничить доступ других пользователей компьютера.

Использование ssh-agent

Если приватный ключ защищен парольной фразой, ssh-agent позволяет не вводить ее при каждом подключении.

В Linux и macOS ключ добавляется командой:

Терминал Linux
ssh-add ~/.ssh/id_ed25519

Посмотреть загруженные ключи:

Терминал Linux
ssh-add -l

Удалить ключи из агента:

Терминал Linux
ssh-add -D

На общедоступном или чужом компьютере загружать рабочий приватный ключ в агент не следует.

Как безопасно изменить настройки OpenSSH

После настройки отдельного пользователя и ключа можно переходить к усилению доступа. Изменения выполняются на сервере в конфигурации sshd.

Основной файл:

/etc/ssh/sshd_config

В современных системах дополнительные настройки могут находиться в:

/etc/ssh/sshd_config.d/

Перед изменением нужно создать резервную копию:

Терминал Linux
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Проверка фактических параметров

Некоторые значения могут быть заданы в подключаемых файлах, поэтому просмотра одной строки в sshd_config недостаточно.

Итоговую конфигурацию показывает команда:

Терминал Linux
sudo sshd -T

После редактирования обязательно проверяется синтаксис:

Терминал Linux
sudo sshd -t

Если команда не выводит ошибок, конфигурацию можно применить:

Терминал Linux
sudo systemctl reload ssh

На некоторых дистрибутивах служба может называться sshd, поэтому фактическое имя нужно проверить через systemctl.

Ограничение входа root

После проверки отдельного администратора прямой вход root можно запретить:

PermitRootLogin no

Это не отключает учетную запись root внутри системы. Администратор продолжает выполнять необходимые команды через sudo.

Отключение парольной аутентификации

Когда ключи проверены у всех администраторов, парольный вход можно отключить:

PasswordAuthentication no

До применения этой настройки необходимо убедиться, что:

  • каждый администратор имеет отдельного пользователя;
  • ключи добавлены и проверены;
  • sudo работает;
  • известен способ отзыва ключа;
  • доступна консоль провайдера;
  • открыт резервный активный сеанс.
Типичная ошибка: отключить PasswordAuthentication, проверив только вход под root. После последующего запрета root на сервере не остается ни одной рабочей учетной записи для удаленного подключения.

Нужно ли менять порт 22

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

Сканирование может обнаружить службу на любом доступном порту. Поэтому смену порта следует рассматривать как способ снизить фоновый шум, а не как основной механизм защиты.

Если порт меняется, нужно заранее:

  • разрешить новый порт в локальном firewall;
  • проверить сетевые правила провайдера;
  • учесть SELinux, если он используется;
  • проверить новое подключение;
  • только затем закрыть старый порт.

Диагностика ошибок подключения по SSH

Текст ошибки обычно указывает, на каком уровне возникла проблема: сеть, служба, проверка ключа сервера или аутентификация пользователя.

ОшибкаВероятная причинаЧто проверить
Connection timed outПорт недоступен по сетиIP-адрес, маршрутизацию, firewall и правила провайдера
Connection refusedНа адресе никто не слушает указанный портСлужбу SSH, фактический порт и состояние сервера
No route to hostНет маршрута или соединение блокируется сетьюАдрес, шлюз, сеть VPS и правила фильтрации
Permission deniedСервер отклонил пароль или ключПользователя, ключ, права файлов и настройки аутентификации
Host key verification failedHost key не совпадает с сохраненнымПереустановку сервера и правильный fingerprint
Too many authentication failuresКлиент предложил серверу слишком много ключейIdentityFile и IdentitiesOnly yes
WARNING: UNPROTECTED PRIVATE KEY FILEУ приватного ключа слишком широкие праваПрава на файл ключа

Connection timed out

Сообщение означает, что TCP-соединение не было установлено. В первую очередь проверяются:

  • правильность IP-адреса;
  • доступность VPS в панели провайдера;
  • фактический порт SSH;
  • локальный firewall сервера;
  • сетевые правила провайдера;
  • блокировка исходящих соединений в сети пользователя.

Из Windows порт можно проверить командой:

PowerShell
Test-NetConnection 203.0.113.10 -Port 22

Из Linux или macOS:

Терминал Linux
nc -vz 203.0.113.10 22

Connection refused

Адрес отвечает, но на указанном порту нет доступной службы. Через консоль провайдера нужно проверить:

Терминал Linux
sudo systemctl status ssh

И список прослушиваемых портов:

Терминал Linux
sudo ss -tlnp

Если служба не запускается после изменения конфигурации, проверяется синтаксис:

Терминал Linux
sudo sshd -t

Permission denied

Расширенное сообщение может выглядеть так:

Permission denied (publickey,password).

Оно показывает, какие способы аутентификации сервер разрешил использовать.

Для ключа проверяются:

  • правильность имени пользователя;
  • наличие публичного ключа в authorized_keys;
  • целостность строки ключа;
  • владелец домашнего каталога и .ssh;
  • права 700 на каталог .ssh;
  • права 600 на authorized_keys;
  • соответствие приватного ключа публичному;
  • ограничения в sshd_config.

Для подробной диагностики на клиенте используется:

Терминал
ssh -vvv adminuser@203.0.113.10

На сервере полезно проверить журнал:

Терминал Linux
sudo journalctl -u ssh --since "10 minutes ago"

На отдельных системах события аутентификации записываются в другой системный журнал.

Too many authentication failures

Ошибка может возникнуть, если в ssh-agent загружено много ключей и клиент последовательно предлагает их серверу.

Нужный ключ можно указать явно:

Терминал
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 adminuser@203.0.113.10

Для постоянного использования эти параметры лучше сохранить в ~/.ssh/config.

Как восстановить доступ

Если SSH полностью недоступен, используется консоль в панели провайдера или режим восстановления. Через нее можно:

  • проверить состояние службы;
  • исправить sshd_config;
  • вернуть прежний порт;
  • открыть правило firewall;
  • исправить права authorized_keys;
  • создать нового администратора;
  • временно вернуть парольный вход.
Важно: наличие консоли провайдера нужно проверить до усиления SSH. Аварийный доступ особенно важен для VPS без второго администратора и без отдельного канала управления.

Заключение

Подключение к Linux VPS по SSH состоит из двух проверок: клиент должен убедиться, что соединяется с правильным сервером, а сервер — что доступ запрашивает разрешенный пользователь. Для первой проверки используется fingerprint host key, для второй — пароль или SSH-ключ.

При первом входе следует сверить fingerprint, проверить параметры VPS и создать отдельного администратора. Затем на рабочем компьютере создается пара ключей, публичная часть добавляется в authorized_keys, а вход тестируется в новом сеансе.

Отключать парольную аутентификацию и прямой доступ root можно только после проверки ключей, прав sudo и аварийной консоли. Такой порядок позволяет усилить защиту, не потеряв управление сервером.

Что почитать дальше

Для дальнейшей настройки и защиты Linux VPS будут полезны следующие материалы:

Когда стоит обратиться к специалистам

Первое подключение и установку одного ключа можно выполнить самостоятельно, если доступна консоль провайдера и администратор проверяет каждое изменение в отдельном сеансе. Для нескольких серверов и нескольких специалистов уже требуется единая политика выдачи, хранения и отзыва ключей.

Когда стоит обратиться к специалистам: если SSH перестал работать после изменения порта или firewall, сервер принимает только неизвестный ключ, требуется восстановить доступ через консоль либо нужно организовать безопасный доступ для нескольких администраторов, лучше сначала проверить сетевые правила, конфигурацию OpenSSH и права учетных записей.

Если сервер еще не заказан, для размещения сайтов и приложений можно подобрать VPS на Ubuntu, VPS на Debian или VPS на Oracle Linux. После развертывания необходимо отдельно настроить административные учетные записи, SSH-ключи, firewall и резервное копирование.

Кратко

  • Для подключения нужны IP-адрес, пользователь, порт и пароль или SSH-ключ.
  • Fingerprint подтверждает идентификационный ключ удаленного сервера.
  • Неожиданное изменение host key нельзя игнорировать без проверки причины.
  • Для новых ключей можно использовать алгоритм ED25519.
  • Приватный ключ остается у администратора, а публичный добавляется на сервер.
  • Новый способ входа необходимо проверить в отдельном SSH-сеансе.
  • Парольный вход и доступ root отключаются только после успешного тестирования ключа.
  • При ошибке подключения сначала определяется уровень проблемы: сеть, служба или аутентификация.

Мы используем файлы cookie и сервис веб-аналитики Яндекс Метрика для улучшения работы сайта. Оставаясь на сайте, вы соглашаетесь с Политикой конфиденциальности.