hostprofi.ru
Подобрать хостинг
Термин·буква S

SSH-ключ

краткое определение

SSH-ключ — пара криптографических ключей (приватный + публичный) для аутентификации по протоколу SSH без пароля. Публичный ключ хранится на сервере в ~/.ssh/authorized_keys, приватный — на клиентской машине. Безопаснее паролей: не передаётся по сети и стоек к brute-force.

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

Как работает

Генерация пары ключей:

ssh-keygen -t ed25519 -C "user@hostname"
# Или RSA-4096:
ssh-keygen -t rsa -b 4096 -C "user@hostname"

Создаются два файла: ~/.ssh/id_ed25519 (приватный, chmod 600) и ~/.ssh/id_ed25519.pub (публичный). Добавление публичного ключа на сервер:

ssh-copy-id user@server-ip
# Или вручную:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys

При подключении SSH выполняет challenge-response: сервер шифрует случайное число публичным ключом клиента, клиент расшифровывает приватным — это доказывает владение без передачи секрета. Ed25519 — современный алгоритм, предпочтительнее RSA-2048 (быстрее, компактнее, такая же стойкость).

История

SSH (Secure Shell) разработан Тату Юлёненом в Финляндии в 1995 году после атаки сниффинга в сети Хельсинкского университета. OpenSSH — открытая реализация — появилась в 1999 году. Ed25519 введён в OpenSSH 6.5 в 2014 году на основе алгоритма Daniel Bernstein (2011).

Связь с хостингом

SSH-ключи — обязательный стандарт безопасности для подключения к VPS. Хостинг-провайдеры предлагают добавить публичный ключ при создании сервера — он устанавливается автоматически. Отключение парольной аутентификации (PasswordAuthentication no в sshd_config) после настройки ключей — базовая мера защиты. SSH-ключи используются в CI/CD для автоматизированного деплоя через Git hooks и GitHub Actions.

Типы SSH-ключей

RSA 4096 — стандарт совместимости. Ed25519 — рекомендован: короче (256 бит), быстрее, безопаснее. ECDSA — для устаревших систем. Создание: ssh-keygen -t ed25519 -C "comment". Паспрейз на приватный ключ — защита от кражи файла ключа.

Настройка авторизации по ключам

Публичный ключ → ~/.ssh/authorized_keys на сервере. Права: chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys. В /etc/ssh/sshd_config: PasswordAuthentication no после проверки ключей. systemctl restart sshd. Fail2ban дополнительно блокирует брутфорс.

Управление ключами в команде

ssh-agent кэширует расшифрованные ключи в сессии. ssh-add добавляет ключ. Agent forwarding (-A) — использование локальных ключей на удалённых серверах без копирования. HashiCorp Vault или Teleport — централизованное управление доступом по SSH для команд.

Сертификаты SSH вместо ключей

SSH Certificate Authority: вместо копирования публичных ключей на серверы — сервер доверяет CA. ssh-keygen -s ca_key -I identity -n servers user_key.pub — подписать ключ пользователя. TrustedUserCAKeys /etc/ssh/ca.pub на сервере. HashiCorp Vault SSH Secrets Engine — managed SSH CA для команд.

SSH ProxyJump (Бастион-хост)

ssh -J user@bastion user@internal-server. В ~/.ssh/config: Host internal ProxyJump bastion HostName 10.0.0.1. Бастион-хост (jumpbox): единственный SSH-exposed хост, остальные серверы без прямого SSH. Усиливает безопасность: audit всех SSH-подключений на одном хосте.

SSH-ключи обеспечивают безопасный доступ к VPS и выделенным серверам. Используются в CI/CD-пайплайнах для деплоя. rsync over SSH для синхронизации файлов. SFTP для передачи файлов. Fail2ban блокирует брутфорс паролей.

Другие термины