Как подключиться к серверу по SSH с помощью пароля или ключа

VDSSSHпрограммыбезопасность
27 июл. 2020обн. 08 сент. 2026

17 мин. чтения

Как подключиться к серверу по SSH с помощью пароля или ключа

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

Основные тезисы статьи

  • Сравнение способов аутентификации: почему парольный доступ подходит только для первичной настройки, а ssh подключение по ключу рекомендуется для постоянной безопасной работы.

  • Генерация и размещение ключей: как сгенерировать приватный и публичный ключ SSH на клиентской машине и корректно передать публичный ключ на сервер.

  • Практическая инструкция: как подключиться к серверу по ssh ключу из ОС Windows, Linux и macOS, а также устранить основные ошибки соединения.

Что нужно проверить перед подключением по SSH

Что нужно проверить перед подключением по SSH

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

Перед запуском SSH-клиента необходимо проверить:

  • IP-адрес сервера и логин: актуальный IPv4/IPv6-адрес хоста и имя учетной записи, разрешенной для SSH-подключения (например, root, если провайдер это допускает).

Где проверить IP-адрес сервера и логин

  • Статус SSH-службы: демон sshd должен быть запущен на стороне сервера и принимать входящие запросы.

Проверка работы и версии утилиты OpenSSH через веб-консоль управления
Проверка работы и версии утилиты OpenSSH через веб-консоль управления

  • Порт подключения: стандартный TCP-порт SSH — 22. Если администратор изменил его в конфигурационном файле sshd_config, при подключении потребуется указать нестандартный порт или сохранить его в конфигурации SSH-клиента. Посмотреть подробнее, что такое TCP/IP, можно в статье.

  • Правила брандмауэра: межсетевой экран (ufw, iptables или внешнее правило файрвола провайдера) должен разрешать входящий трафик на выбранный порт.

  • Сетевая доступность: наличие стабильного интернет-соединения и отсутствие блокировок со стороны локального провайдера. Проверить сетевую доступность хоста можно с помощью ping, а доступность конкретного SSH-порта — например, с помощью nc (netcat).

Для практического применения темы полезно отдельно изучить инструкцию по подключению к виртуальному серверу VPS/VDS.

Подключение к серверу по SSH по паролю

Парольная аутентификация — стандартный метод первичного входа на новый удаленный VPS или выделенный сервер. Для установки соединения используется штатный терминал операционной системы или сторонний SSH-клиент.

Windows

В версиях Windows 10 и 11 утилита OpenSSH Client встроенa в систему по умолчанию. Подключение выполняется через «Командную строку» или PowerShell:

  1. Откройте терминал и введите команду подключения: ssh root@192.168.1.1 (где root — имя пользователя, а 192.168.1.1 — IP-адрес сервера).

  2. При первом подключении система попросит подтвердить подлинность узла и сохранить его fingerprint. Введите yes и нажмите Enter.

  3. Введите пароль от учетной записи. При вводе пароля символы в терминале не отображаются из соображений безопасности.

Если на сервере используется нестандартный порт, добавляется флаг -p:

ssh -p 2222 root@192.168.1.1

Если вы предпочитаете графический SSH-клиент, для подключения можно использовать PuTTY:

  • Запустите PuTTY, в поле Host Name (or IP address) укажите IP-адрес хоста.

  • Укажите порт (по умолчанию 22) и тип соединения SSH.

  • Нажмите Open, в появившемся окне консоли введите имя пользователя и пароль.

Linux и macOS

В операционных системах Linux и macOS поддержка OpenSSH обычно доступна изначально. Для подключения откройте приложение «Терминал».

Синтаксис команды такой же, как в Windows: ssh username@remote_host_ip

  • Базовое подключение: ssh root@185.104.114.90 (где root — имя пользователя, а 185.104.114.90 — IP-адрес сервера).

  • Подключение с флагом отладки и нестандартным портом: ssh -v -p 2222 admin@192.168.1.1

Типовые ошибки на старте:

  • Connection refused: указывает на то, что демон sshd не запущен на сервере, либо порт 22 закрыт брандмауэром.

  • Permission denied (publickey, password): означает, что сервер не смог выполнить аутентификацию пользователя. Причиной могут быть неверный пароль, отсутствие или некорректная настройка публичного ключа, неправильный пользователь или запрет на прямой вход под root.

  • Host key verification failed: fingerprint сервера изменился (например, после переустановки ОС). Решается удалением старой записи из локального файла ~/.ssh/known_hosts.

Подключение к серверу по SSH по ключу

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

Смотрите также: Инструкция по настройке VDS: базовая конфигурация и работа с LEMP.

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

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

  • Приватный (закрытый) ключ: хранится исключительно на локальном компьютере администратора. Он используется для подписания запросов на подключение и никогда не передается по сети. Доступ к файлу приватного ключа должен быть максимально ограничен.

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

Как создать SSH-ключ

Для генерации пары ключей в Linux, macOS и Windows (через PowerShell или cmd) используется штатная утилита ssh-keygen.

  1. Откройте терминал на локальном компьютере и выполните команду: ssh-keygen -t ed25519 -C "admin@company.com" (Рекомендуется современный и стойкий алгоритм ED25519. Для устаревших систем можно задействовать RSA с длиной ключа 4096 бит: ssh-keygen -t rsa -b 4096).

  2. Система предложит указать путь для сохранения файла. По умолчанию приватный ключ сохраняется как ~/.ssh/id_ed25519, а публичный — как ~/.ssh/id_ed25519.pub. В Windows соответствующий каталог обычно находится по пути C:\Users\Username\.ssh\. Нажмите Enter, чтобы оставить путь по умолчанию.

  3. Генератор предложит также задать кодовую фразу для ключа. Это дополнительная мера безопасности: если файл приватного ключа попадет к постороннему, без кодовой фразы использовать его для подключения к серверу не получится. Минус — при подключении SSH-клиент может запрашивать эту фразу.

В результате в каталоге .ssh создаются два файла:

  • id_ed25519 — приватный ключ.

  • id_ed25519.pub — публичный ключ.

Для Windows при использовании PuTTY генерация выполняется через утилиту PuTTYgen:

  1. Запустите PuTTYgen, выберите тип ключа Ed25519 или RSA (4096 bits) и нажмите Generate.

Запуск Putty

  1. Хаотично перемещайте курсор мыши в пустом поле окна для формирования случайных данных.

  2. Сохраните публичный ключ кнопкой Save public key и приватный ключ в формате .ppk кнопкой Save private key.

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

Чтобы задействовать ssh доступ по ключу, необходимо скопировать содержимое публичного ключа (id_ed25519.pub) на удаленный хост.

Способ 1. Автоматический (при наличии ssh-copy-id). Выполните команду ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.168.1.1. Утилита подключится к серверу, при необходимости создаст каталог .ssh и добавит публичный ключ в файл ~/.ssh/authorized_keys.

Способ 2. Ручной разнос. Если ssh-copy-id недоступен, скопируйте содержимое файла id_ed25519.pub вручную:

  1. Подключитесь к серверу по паролю.

  2. Создайте директорию .ssh в домашнем каталоге пользователя (если она отсутствует) и задайте корректные права: mkdir -p ~/.ssh && chmod 700 ~/.ssh

  3. Откройте или создайте файл authorized_keys и вставьте строку публичного ключа: nano ~/.ssh/authorized_keys

  4. Установите ограничение прав на файл: chmod 600 ~/.ssh/authorized_keys

Как подключиться к серверу по ключу

После добавления публичной части выполняется авторизация ssh по ключу.

Через стандартный терминал: Если ключ сохранен в стандартной директории ~/.ssh/ с дефолтным именем (id_ed25519 или id_rsa), подключение происходит автоматически при вводе стандартной команды: ssh root@192.168.1.1

Если используется ключ с нестандартным именем или путем, укажите его с помощью флага -i: ssh -i ~/.ssh/custom_key root@192.168.1.1

Через PuTTY:

  1. В окне PuTTY перейдите в раздел Connection -> SSH -> Auth -> Credentials.

  2. В поле Private key file for authentication укажите путь к файлу приватного ключа .ppk.

  3. Вернитесь в раздел Session, укажите IP-адрес сервера, сохраните сессионный профиль и нажмите Open.

Как работает авторизация по SSH-ключу

Механизм аутентификации строится на принципе «запрос-ответ» без прямой передачи секретных данных по сети.

Процесс взаимодействия состоит из четырех шагов:

  1. Инициализация: клиент сообщает серверу, какой публичный ключ он хочет использовать для аутентификации.

  2. Проверка ключа: сервер проверяет, разрешен ли этот публичный ключ для выбранной учетной записи, например, находится ли он в файле ~/.ssh/authorized_keys.

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

  4. Проверка подписи: сервер проверяет полученную подпись с помощью соответствующего публичного ключа. Если проверка успешна, пользователь проходит аутентификацию.

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

Где хранится публичный ключ и что такое authorized_keys

Где хранится публичный ключ и что такое authorized_keys

На удаленном сервере все доверенные публичные ключи пользователей хранятся в текстовом файле authorized_keys, находящемся в скрытой директории .ssh целевой учетной записи (например, /root/.ssh/authorized_keys или /home/username/.ssh/authorized_keys).

Обычная запись в файле authorized_keys содержит один публичный ключ и состоит из трех основных элементов, разделенных пробелами:

  1. Тип алгоритма: например, ssh-ed25519 или ssh-rsa.

  2. Закодированное тело ключа: строка символов в формате Base64.

  3. Комментарий: опциональная метка (обычно e-mail или имя ПК), позволяющая определить владельца ключа.

Пример корректной структуры записи:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOG4x... admin@workstation

Криптографическая служба sshd предъявляет жесткие требования к правам доступа на сервере. Если права доступа или владелец файла authorized_keys либо каталога .ssh не соответствуют требованиям безопасности SSH, демон может отказать в аутентификации по ключу.

Рекомендуемые права доступа:

  • Директория ~/.ssh: права 700 (drwx------).

  • Файл ~/.ssh/authorized_keys: права 600 (-rw-------).

Как отключить вход по паролю после настройки ключа

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

Порядок действий:

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

  2. Откройте конфигурационный файл SSH-демона: sudo nano /etc/ssh/sshd_config

  3. Измените основные параметры безопасности. Найдите и установите следующие значения директив (если строки закомментированы символом #, раскомментируйте их):

    • PasswordAuthentication no — отключает возможность входа по паролю.

    • PubkeyAuthentication yes — разрешает аутентификацию по ключам.

    • PermitRootLogin prohibit-password — запрещает авторизацию root по паролю, оставляя доступ только по ключу.

  4. Перезапустите службу SSH:

    • На Ubuntu/Debian: sudo systemctl restart ssh

    • На CentOS/RHEL/AlmaLinux: sudo systemctl restart sshd

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

Частые ошибки при подключении по SSH-ключу

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

  • Ошибка «Permission denied (publickey)»: Самая распространенная проблема, у нее есть три причины:

    1. Некорректные права доступа: На сервере установлены небезопасные права доступа к папке .ssh или файлу authorized_keys. Исправьте их командами chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys.

    2. Синтаксические ошибки: Публичный ключ в authorized_keys разбился на несколько строк или содержит лишние символы переноса. Ключ должен быть записан строго в одну строку.

    3. Неверный пользователь: Попытка войти под учетной записью user, хотя вход на сервер по ssh ключу настраивался для root (или наоборот).

  • Клиент не видит приватный ключ: Если файл ключа сохранен под нестандартным именем или в произвольной директории, стандартная ssh авторизация не сработает автоматически. Указывайте путь явно с помощью флага -i (ssh -i /path/to/key user@ip) или добавьте ключ в SSH-агент командой ssh-add /path/to/key.

  • Несовместимость форматов: PuTTY и OpenSSH используют разные форматы приватных ключей. Файл .ppk не является стандартным форматом приватного ключа OpenSSH, поэтому для использования ключа в OpenSSH его обычно необходимо конвертировать. Аналогично, при использовании ключа OpenSSH в PuTTY может потребоваться конвертация через PuTTYgen.

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

Что в итоге

Использование пароля подходит для первичной инициализации сервера, но для постоянной работы и защиты от несанкционированного доступа необходим ssh доступ по ключу. Достаточно один раз сгенерировать пару ключей, скопировать публичную часть в файл authorized_keys и убедиться в успешности авторизации. Зная, как подключиться к серверу по SSH-ключу, вы сможете надежнее организовать удаленный доступ к инфраструктуре и снизить риски, связанные с использованием паролей.

27 июл. 2020обн. 08 сент. 2026