Вопрос с собеседования · DevOps

Как устроен доступ по SSH-ключам и зачем нужен bastion-хост?

JuniorLinux и диагностика
Ещё спрашивают так:
  • Почему вход по паролю по SSH стоит отключить?
Коротко

Пара ключей: закрытый хранится у пользователя, открытый кладут на сервер в ~/.ssh/authorized_keys. При входе сервер проверяет, что клиент владеет закрытым ключом, — сам ключ по сети не передаётся. Bastion (jump host) — единственная точка входа во внутреннюю сеть: серверы не открыты в интернет, доступ проходит через один контролируемый и журналируемый хост.

  • Отключить вход по паролю и вход root: PasswordAuthentication no, PermitRootLogin no
  • Закрытый ключ — с паролем, права 600; агент ssh-agent
  • ssh -J bastion internal-host — прыжок через bastion

А ещё Современная альтернатива — короткоживущие SSH-сертификаты или доступ через SSO

Подробно

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

Настройка:

ssh-keygen -t ed25519 -C "ivan@laptop"
ssh-copy-id user@server
ssh -J user@bastion user@10.0.1.15

~/.ssh/config хранит алиасы, пользователя, ключ и ProxyJump.

Bastion: минимальный набор ПО, обновления, журналирование сессий, доступ только с известных адресов или через VPN, двухфакторная аутентификация. Внутренние серверы принимают SSH только от bastion.

Ротация доступа: при увольнении удалить ключ со всех серверов — поэтому ключи раскладывают автоматизацией (Ansible) или используют центральную выдачу сертификатов.

Что хотят услышать

  • Принцип работы ключей.
  • Укрепление sshd.
  • Роль bastion и управление доступом.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Bastion нужен, чтобы все серверы были доступны из интернета
  • ✗Закрытый ключ кладут в authorized_keys на сервере
  • ✓Открытый ключ на сервере, закрытый у пользователя; bastion — точка входа в сеть
  • ✗При входе закрытый ключ передаётся серверу, и тот сверяет его с открытым ключом в authorized_keys

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования