SSL/TLS и SSH — оба являются протоколами шифрования, использующими криптографию с открытым ключом. Но они решают разные задачи для разных аудиторий. SSL/TLS защищает веб-соединения (HTTPS). SSH защищает удаленный доступ к серверу (терминал/командная строка).
Краткое сравнение
| SSL/TLS | SSH | |
|---|---|---|
| Полное название | Secure Sockets Layer / Transport Layer Security | Secure Shell |
| Назначение | Шифрование веб-трафика | Удаленный доступ к серверу |
| Используется | Браузерами, веб-серверами, API | Системными администраторами, разработчиками |
| Порт | 443 (HTTPS) | 22 |
| Аутентификация | Сертификат от CA | Открытый ключ или пароль |
| Нужен ли удостоверяющий центр | Да (для публичного доверия) | Нет |
| Типичный пользователь | Посетители сайтов (неосознанно) | Администраторы серверов (осознанно) |
| Тип соединения | Клиент (браузер) → Сервер | Терминал пользователя → Сервер |
| Шифрует | HTTP-запросы/ответы | Команды оболочки, передачу файлов |
| Примеры | HTTPS-сайты, API, электронная почта (IMAPS) | ssh user@server, scp, sftp |
SSL/TLS в одном абзаце
SSL/TLS шифрует соединение между веб-браузером и сервером. Когда вы посещаете https://example.com, ваш браузер проверяет SSL-сертификат сервера (выданный удостоверяющим центром), согласовывает параметры шифрования, и весь трафик передается через зашифрованный канал. Пользователю не нужно ничего делать — HTTPS работает прозрачно.
SSH в одном абзаце
SSH шифрует соединение между терминалом пользователя и удаленным сервером. Когда вы выполняете ssh user@server.com, SSH-клиент проверяет открытый ключ сервера (вы подтверждаете при первом подключении), аутентифицирует вас (с помощью пароля или пары SSH-ключей) и предоставляет зашифрованную сессию оболочки. SSH используется разработчиками и администраторами — обычные пользователи редко с ним взаимодействуют.
Они используют схожую криптографию
Оба протокола используют одну и ту же базовую математику:
| Концепция | В SSL/TLS | В SSH |
|---|---|---|
| Асимметричное шифрование | Открытый ключ сервера в сертификате | Ключ хоста сервера + SSH-ключ пользователя |
| Обмен ключами | ECDHE Diffie-Hellman | Diffie-Hellman или ECDH |
| Симметричное шифрование | AES-GCM, ChaCha20 | AES, ChaCha20 |
| Целостность | HMAC / AEAD | HMAC / AEAD |
| Прямая секретность | Через ECDHE (обязательна в TLS 1.3) | Через DH/ECDH |
Алгоритмы практически идентичны. Разница — в уровне протокола и модели доверия.
Различие в модели доверия
SSL/TLS: удостоверяющие центры
SSL/TLS использует доверие через третью сторону. Ваш браузер доверяет примерно 100-150 удостоверяющим центрам. Когда сервер предъявляет сертификат, подписанный доверенным CA, браузер принимает его автоматически.
Вы доверяете удостоверяющим центрам проверять, что сертификат google.com действительно принадлежит Google.
SSH: доверие при первом использовании (TOFU)
SSH использует прямое доверие. При первом подключении к серверу SSH спрашивает:
The authenticity of host 'server.com' can't be established.
ED25519 key fingerprint is SHA256:xyz...
Are you sure you want to continue connecting? (yes/no)
Вы проверяете отпечаток один раз, SSH запоминает его (~/.ssh/known_hosts), и последующие подключения проверяются по нему. Никакого CA не требуется.
Можно ли использовать их вместе?
Да — они дополняют друг друга, а не конкурируют:
- SSL/TLS защищает сайт, который видят ваши посетители (
https://example.com) - SSH обеспечивает безопасное управление сервером, на котором работает сайт (
ssh admin@server) - Вы можете подключиться по SSH к серверу, чтобы установить SSL-сертификат на Nginx
На большинстве серверов одновременно открыты порт 443 (HTTPS с SSL/TLS) и порт 22 (SSH).
Часто задаваемые вопросы
Что безопаснее?
Ни то, ни другое — при правильной настройке они одинаково безопасны. Оба используют одни и те же криптографические алгоритмы. Этот вопрос подобен вопросу «что безопаснее — замок на входной двери или замок на автомобиле?» Они защищают разные вещи.
Нужны ли мне оба?
Для веб-сервера: как правило, да. SSL/TLS защищает ваших посетителей (HTTPS). SSH защищает ваш доступ к серверу (администрирование). Они служат разным целям.
SFTP и FTPS — это одно и то же?
Нет. SFTP (SSH File Transfer Protocol) работает поверх SSH (порт 22). FTPS (FTP Secure) работает поверх SSL/TLS (порт 990 или 21 с STARTTLS). Оба шифруют передачу файлов, но используют разные протоколы. SFTP более распространен и проще в настройке.
Может ли SSL/TLS заменить SSH?
Нет. SSL/TLS не предоставляет оболочку или интерфейс командной строки. Вы не можете «подключиться к серверу по SSH» с помощью TLS. Некоторые веб-терминалы (например, Wetty или ttyd) предоставляют доступ к оболочке через HTTPS/WebSocket, но концепция совершенно другая.