ВЕРНУТЬСЯ

БАЗА ЗНАНИЙ

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

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

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

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

Ниже — как работает SSH, как подключиться к серверу из Windows, macOS и Linux, как настроить вход по ключу и что делать, если соединение не устанавливается.

SSH: что это простыми словами

SSH (Secure Shell, «защищённая оболочка») — сетевой протокол, который позволяет безопасно управлять другим компьютером через интернет. Чаще всего этим компьютером оказывается сервер: VPS, выделенный сервер или хостинг с SSH-доступом.

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

SSH появился в 1995 году как замена Telnet, который передавал всё, включая пароли, открытым текстом. Сегодня используется вторая версия протокола, SSH-2, а самая распространённая реализация — бесплатный OpenSSH. Она встроена в Linux, macOS и современные версии Windows.

Для чего нужен SSH-доступ:

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

Как работает SSH: шифрование и проверка подлинности

Всё, что идёт между клиентом и сервером, зашифровано

SSH решает две задачи сразу: шифрует трафик и проверяет, что обе стороны — те, за кого себя выдают. Для этого соединение проходит несколько этапов.

Что происходит за доли секунды после ввода команды
  1. Обмен версиями. Клиент подключается к порту 22 сервера, и стороны сообщают, какие версии протокола поддерживают.
  2. Обмен ключами. По алгоритму Диффи — Хеллмана стороны вырабатывают общий секретный ключ сессии, не передавая его по сети. Дальше весь трафик шифруется симметричным алгоритмом, например AES или ChaCha20.
  3. Проверка сервера. Сервер предъявляет свой ключ, и клиент сверяет его отпечаток — fingerprint — с сохранённым. Так вы узнаёте, что подключились к своему серверу, а не к подставному.
  4. Аутентификация пользователя. Вы подтверждаете, что имеете право войти: паролем или SSH-ключом.
  5. Сессия. Открывается командная строка, и можно работать.

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

SSH, Telnet и FTP: чем отличаются

Все три протокола дают доступ к удалённому компьютеру, но защищает данные только SSH.

ПараметрSSHTelnetFTP
Назначениеуправление сервером, файлы, туннелиуправление серверомпередача файлов
Шифрованиевсё соединениенетнет, логин и пароль идут открытым текстом
Порт по умолчанию222321
Вход по ключуданетнет
Использовать сегоднядатолько в изолированных сетяхлучше заменить на SFTP

SFTP — это не FTP с шифрованием, а отдельный протокол передачи файлов, работающий внутри SSH. Если на сервере есть SSH, SFTP обычно уже доступен.

Что нужно для подключения к серверу

Эти данные провайдер присылает после создания сервера

Для подключения нужны четыре вещи:

  • IP-адрес сервера или доменное имя, которое на него указывает;
  • имя пользователя — на новом сервере обычно root;
  • пароль или SSH-ключ для входа;
  • порт — по умолчанию 22, указывать его нужно, только если его сменили.

Всё это провайдер выдаёт после создания сервера. SSH-клиент уже есть в любой современной системе, устанавливать ничего не нужно. Если сервера у вас пока нет, VPS на ZION HOSTING запускается за 15 минут и сразу доступен по SSH.

СЕРВЕР ПОД ВАШИ ЗАДАЧИ БЫСТРО И БЕЗ ЛИШНИХ СЛОЖНОСТЕЙ

Подберите конфигурацию, оплатите и начните работу за несколько минут — без сложной настройки

Как подключиться по SSH из Windows: PowerShell и PuTTY

В Windows 10 и 11 клиент OpenSSH встроен в систему. Откройте PowerShell или «Терминал» и введите:

ssh user@203.0.113.10

Здесь user — имя пользователя, а 203.0.113.10 — IP-адрес сервера. Если порт не стандартный, добавьте ключ -p:

ssh -p 2222 user@203.0.113.10
При вводе пароля символы не отображаются — так и задумано

Система спросит пароль. При вводе на экране ничего не появляется, даже звёздочек: это защита от подглядывания, а не зависание. Введите пароль и нажмите Enter.

PuTTY — отдельная бесплатная программа для подключения по SSH, популярная со времён, когда в Windows не было встроенного клиента. В поле Host Name укажите IP-адрес, в поле Port — 22, выберите тип соединения SSH и нажмите Open. Логин и пароль программа спросит в открывшемся окне.

СистемаЧем подключатьсяУстановка
Windows 10, 11PowerShell, «Терминал»не нужна
Windows, любая версияPuTTYскачать с сайта программы
macOSприложение «Терминал»не нужна
Linuxлюбой терминалобычно не нужна

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

В macOS откройте приложение «Терминал», в Linux — любой эмулятор терминала. Команда та же, что и в Windows:

ssh user@203.0.113.10

Клиент OpenSSH предустановлен в macOS и почти во всех дистрибутивах Linux. Если в минимальной сборке Ubuntu или Debian его нет, установите пакет:

sudo apt install openssh-client

Всё остальное — пароль, ключи, файл настроек — в macOS и Linux работает одинаково, и примеры ниже подходят для обеих систем.

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

Такой вопрос появляется один раз — при первом подключении к серверу

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

Если сервер ваш и только что создан, введите yes. Клиент запомнит отпечаток в файле ~/.ssh/known_hosts и больше спрашивать не будет.

Настоящий повод насторожиться — сообщение REMOTE HOST IDENTIFICATION HAS CHANGED при подключении к уже знакомому серверу. Оно означает, что ключ сервера изменился. Обычно причина безобидна: вы переустановили систему. Но так же выглядит и попытка подмены. Если вы точно знаете, что сервер переустанавливали, удалите старую запись и подключитесь заново:

ssh-keygen -R 203.0.113.10

Вход по SSH-ключу: как создать ключ и добавить его на сервер

Приватный ключ никогда не покидает ваш компьютер

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

Шаг 1. Создайте ключ. Команда одинакова для Windows, macOS и Linux:

ssh-keygen -t ed25519
Путь к файлу можно оставить по умолчанию, нажав Enter

Программа предложит путь к файлу — нажмите Enter — и попросит парольную фразу. Её стоит задать: тогда украденный файл ключа без фразы бесполезен. В папке .ssh появятся два файла: id_ed25519 — приватный ключ и id_ed25519.pub — публичный.

Шаг 2. Добавьте публичный ключ на сервер. В macOS и Linux это делает одна команда:

ssh-copy-id user@203.0.113.10
Последний раз пароль вводится здесь

В Windows команды ssh-copy-id нет, её заменяет такая строка в PowerShell:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@203.0.113.10 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Публичный ключ попадает в файл ~/.ssh/authorized_keys на сервере. Теперь команда ssh user@203.0.113.10 пустит вас без пароля.

ПараметрПарольSSH-ключ
Можно подобратьда, переборомпрактически нет
Что передаётся при входесам пароль, в зашифрованном каналетолько доказательство владения ключом
Удобствовводить каждый развход одной командой
Если укралисменить парольудалить ключ из authorized_keys
Боты круглосуточно перебирают пароли на порту 22

Основные команды после входа на сервер

После входа вы оказываетесь в командной строке Linux. Вот команды, которые нужны в первый же день:

КомандаЧто делает
pwdпоказывает, в какой папке вы находитесь
ls -laсписок файлов, включая скрытые
cd /var/wwwпереход в папку
nano файлоткрывает файл в простом текстовом редакторе
sudo apt update && sudo apt upgradeобновляет систему в Ubuntu и Debian
df -hсколько места осталось на диске
free -hсколько свободной памяти
topкакие процессы нагружают сервер
sudo systemctl restart nginxперезапускает службу
exitзавершает SSH-сессию

sudo перед командой выполняет её с правами администратора. Работать постоянно под root не стоит: одна ошибка в команде — и можно удалить систему.

Передача файлов: SCP и SFTP

Оба способа работают поверх того же SSH-соединения

По SSH можно не только вводить команды, но и передавать файлы. Отдельный сервис для этого поднимать не нужно.

SCP копирует файлы одной командой. Отправить файл на сервер:

scp backup.zip user@203.0.113.10:/home/user/

Скачать файл с сервера в текущую папку:

scp user@203.0.113.10:/home/user/backup.zip .

Для папки добавьте ключ -r.

SFTP удобнее для работы со многими файлами. Его поддерживают графические клиенты FileZilla и WinSCP: в настройках подключения выберите протокол SFTP, укажите IP-адрес, порт 22, логин и пароль или ключ. Файлы перетаскиваются мышкой, как в обычном проводнике.

Файл ~/.ssh/config: подключение одной короткой командой

Параметры сервера записываются один раз

Когда серверов несколько, помнить IP-адреса, порты и ключи неудобно. Запишите их в файл ~/.ssh/config на своём компьютере:

Host myvps
    HostName 203.0.113.10
    User user
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Теперь вместо длинной команды достаточно написать ssh myvps. Имя myvps работает и в scp, и в графических клиентах, которые читают этот файл. В Windows он лежит в папке .ssh внутри профиля пользователя.

Как установить и настроить SSH-сервер

На VPS SSH-сервер обычно уже установлен и запущен — иначе вы не смогли бы подключиться. Установка нужна на домашнем компьютере, в виртуальной машине или в минимальной сборке системы. В Ubuntu и Debian:

sudo apt install openssh-server
sudo systemctl enable --now ssh

Проверить, что служба работает:

sudo systemctl status ssh
Строка active (running) — служба работает

В AlmaLinux, Rocky Linux и CentOS служба называется sshd. Настройки сервера лежат в файле /etc/ssh/sshd_config. После изменений служба перезапускается командой sudo systemctl restart ssh. В Ubuntu 22.10 и новее, если вы меняли порт, дополнительно выполните sudo systemctl daemon-reload и sudo systemctl restart ssh.socket.

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

Каждый слой отсекает свою часть атак

Как только у сервера появляется публичный IP-адрес, на порт 22 начинают стучаться боты и перебирать пароли. Посмотреть неудачные попытки входа можно так:

sudo grep "Failed password" /var/log/auth.log | tail

Если строк сотни, это нормально для интернета, но пароль в такой ситуации — слабое место. Минимальная защита:

  1. Войдите по ключу и убедитесь, что это работает.
  2. Отключите вход по паролю: в /etc/ssh/sshd_config задайте PasswordAuthentication no.
  3. Запретите вход под root: PermitRootLogin no, работайте под обычным пользователем с sudo.
  4. Включите файрвол и откройте только нужные порты: sudo ufw allow OpenSSH, затем sudo ufw enable.
  5. Поставьте fail2ban — он блокирует IP-адреса после нескольких неудачных попыток входа.
  6. Обновляйте систему, в том числе сам OpenSSH.

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

Шесть настроек, которые стоит сделать в первый день

Частые ошибки при подключении и как их исправить

Самый быстрый способ понять, на каком шаге всё ломается, — подробный режим:

ssh -v user@203.0.113.10

Клиент покажет каждый этап соединения, и станет видно, где оно обрывается.

СообщениеПричинаЧто делать
Connection timed outсервер не отвечает: неверный IP, сервер выключен или порт закрыт файрволомпроверить IP и что сервер запущен, открыть порт
Connection refusedсервер отвечает, но на этом порту никто не слушаетпроверить, запущена ли служба ssh и какой порт в настройках
Permission denied, please try againневерный пароль или имя пользователяпроверить раскладку, Caps Lock и логин
Permission denied (publickey)сервер принимает только ключи, а вашего ключа нет в authorized_keysдобавить ключ, проверить права: 700 на папку .ssh, 600 на файл
REMOTE HOST IDENTIFICATION HAS CHANGEDизменился ключ сервераесли сервер переустанавливали — ssh-keygen -R и адрес
Could not resolve hostnameопечатка в адресе или домен не указывает на серверпроверить адрес и DNS-записи
Сервер не нашёл подходящего ключа
Две разные ошибки: сервер отказал или не ответил вовсе
Проверяйте по порядку, от сети к правам доступа

SSH-туннели: зачем они нужны

База данных закрыта снаружи, но доступна вам через туннель

SSH умеет пробрасывать порты. Допустим, на сервере работает PostgreSQL, и наружу его открывать нельзя. Команда создаёт туннель:

ssh -L 5432:localhost:5432 user@203.0.113.10

Пока сессия открыта, программа на вашем компьютере подключается к localhost:5432, а попадает в базу на сервере. Трафик идёт внутри зашифрованного SSH-соединения, и порт базы остаётся закрытым для всего интернета.

Частые вопросы

По умолчанию порт 22. Если его сменили, порт указывают ключом -p.
SSL, а точнее TLS, шифрует трафик между браузером и сайтом, то есть HTTPS. SSH нужен для управления сервером и передачи файлов.
Зависит от провайдера: многие дают SSH и на хостинге, но с ограниченными правами. Полный доступ даёт VPS или выделенный сервер.
Создать новую пару, войти другим способом — паролем или через веб-консоль провайдера — и заменить ключ в authorized_keys.
Сам пароль передаётся по зашифрованному каналу, но его можно подобрать. Для сервера в интернете надёжнее вход по ключу с отключённым входом по паролю.
Командой exit или сочетанием клавиш Ctrl+D.
Клиент OpenSSH встроен в Windows 10 и 11: откройте PowerShell и введите ssh user@IP-адрес.
Обычно им управляют через удалённый рабочий стол, но с Windows Server 2019 можно включить встроенный сервер OpenSSH.

Коротко о главном

Пять команд, которых хватает для большинства задач
  • SSH — защищённый протокол удалённого доступа: команды, файлы и туннели по зашифрованному каналу.
  • Клиент уже есть в Windows 10 и 11, macOS и Linux: подключение — одна команда ssh user@IP.
  • Вход по ключу надёжнее пароля; настроив его, отключите вход по паролю.
  • Причину ошибок ищите по порядку: сеть, порт, служба, права.

Сервер с полным SSH-доступом — на странице тарифов ZION HOSTING. Подробнее о серверах — в статьях что такое VPS и про хостинг.