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

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 решает две задачи сразу: шифрует трафик и проверяет, что обе стороны — те, за кого себя выдают. Для этого соединение проходит несколько этапов.

- Обмен версиями. Клиент подключается к порту 22 сервера, и стороны сообщают, какие версии протокола поддерживают.
- Обмен ключами. По алгоритму Диффи — Хеллмана стороны вырабатывают общий секретный ключ сессии, не передавая его по сети. Дальше весь трафик шифруется симметричным алгоритмом, например AES или ChaCha20.
- Проверка сервера. Сервер предъявляет свой ключ, и клиент сверяет его отпечаток — fingerprint — с сохранённым. Так вы узнаёте, что подключились к своему серверу, а не к подставному.
- Аутентификация пользователя. Вы подтверждаете, что имеете право войти: паролем или SSH-ключом.
- Сессия. Открывается командная строка, и можно работать.
Асимметричная криптография с парой ключей используется при проверке подлинности, а сами данные шифруются быстрым симметричным ключом сессии. Поэтому SSH одновременно надёжен и не тормозит.
SSH, Telnet и FTP: чем отличаются
Все три протокола дают доступ к удалённому компьютеру, но защищает данные только SSH.
| Параметр | SSH | Telnet | FTP |
|---|---|---|---|
| Назначение | управление сервером, файлы, туннели | управление сервером | передача файлов |
| Шифрование | всё соединение | нет | нет, логин и пароль идут открытым текстом |
| Порт по умолчанию | 22 | 23 | 21 |
| Вход по ключу | да | нет | нет |
| Использовать сегодня | да | только в изолированных сетях | лучше заменить на 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, 11 | PowerShell, «Терминал» | не нужна |
| 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 — и попросит парольную фразу. Её стоит задать: тогда украденный файл ключа без фразы бесполезен. В папке .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 |

Основные команды после входа на сервер
После входа вы оказываетесь в командной строке 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 можно не только вводить команды, но и передавать файлы. Отдельный сервис для этого поднимать не нужно.
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

В 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
Если строк сотни, это нормально для интернета, но пароль в такой ситуации — слабое место. Минимальная защита:
- Войдите по ключу и убедитесь, что это работает.
- Отключите вход по паролю: в
/etc/ssh/sshd_configзадайтеPasswordAuthentication no. - Запретите вход под root:
PermitRootLogin no, работайте под обычным пользователем сsudo. - Включите файрвол и откройте только нужные порты:
sudo ufw allow OpenSSH, затемsudo ufw enable. - Поставьте fail2ban — он блокирует IP-адреса после нескольких неудачных попыток входа.
- Обновляйте систему, в том числе сам 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-соединения, и порт базы остаётся закрытым для всего интернета.
Частые вопросы
-p.exit или сочетанием клавиш Ctrl+D.ssh user@IP-адрес.Коротко о главном

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


