Shanraq.org Shanraq.org
Ubuntu-сервер: SSH-ключи, обновления и firewall
IT

Cloud & DevOps: от локального приложения до надёжного сервиса Урок 20 из 24

Ubuntu-сервер: SSH-ключи, обновления и firewall

Подключаемся непривилегированным пользователем, закрываем лишние порты и проверяем доступ второй сессией.

Текст переведён с помощью ИИ.

Этот урок начинается с нуля. Незнакомое слово здесь не считается вашим пробелом: мы сначала создадим образ, затем дадим точное значение и только потом применим его.

Где мы находимся

Полётное повторение. В прошлом уроке была опора need → region/size/access → price alert → create → observe → delete. Не подглядывая, назовите её четыре звена и только затем сравните с записью.

Результат урока

Подключаемся непривилегированным пользователем, закрываем лишние порты и проверяем доступ второй сессией. Не переходите дальше, пока не можете объяснить, что проверяет каждая команда и какой отказ она обнаруживает.

Сначала знакомый образ

Переезжая в квартиру, сначала проверяют новый ключ, оставляя старую дверь открытой, и лишь потом меняют замок окончательно. На сервере сначала создают пользователя и проверяют второй вход, затем ограничивают root и firewall. Иначе можно запереть самого себя снаружи.

Аналогия помогает начать рассуждение, но не заменяет устройство технологии. Ниже мы уточним каждое слово.

Опорный сигнал урока

provider console → user+public key → second login → firewall → updates → app

Прочитайте цепочку слева направо. Она отвечает не на вопрос «какую команду запомнить», а на вопрос «почему следующий шаг следует из предыдущего».

Новые слова простыми словами

  • SSH — Защищённый протокол удалённого входа и выполнения команд.
  • Key pair — Приватный ключ остаётся у вас; публичный можно положить на сервер.
  • Firewall — Правила, какие входящие и исходящие соединения разрешены.
  • Patch — Обновление, исправляющее ошибки или уязвимости.

Разбираем без спешки

Укрепление сервера делается в безопасном порядке: сначала новый пользователь и ключ, затем проверка второго входа, после этого запрет рискованного доступа. Если включить firewall или отключить root раньше проверки, можно закрыть себе сервер. Консоль провайдера остаётся аварийным каналом.

Сейчас не нужно запоминать формулировку дословно. Найдите в ней причинную связь и привяжите её к опорному сигналу выше.

Сначала предскажите результат

До запуска ответьте на бумаге: что должно измениться, что должно остаться прежним и какой вывод команды подтвердит ваш прогноз? Даже неверный прогноз полезен, если после опыта вы можете объяснить расхождение.

Опыт маленькими шагами

Выполните команды из корня course/cloud-devops-lab. Команды рассчитаны на учебную среду. Перед командой, меняющей сервер или данные, прочитайте её целиком и проверьте текущий каталог. Запускайте блок по одной смысловой группе. После каждой остановитесь и сопоставьте результат со своим прогнозом.

ssh-keygen -t ed25519 -a 64 -f ~/.ssh/cloudlab_ed25519 -C cloudlab
printf 'Copy only cloudlab_ed25519.pub to the server.\n'
printf 'On Ubuntu: allow OpenSSH before enabling ufw.\n'
printf 'Keep the current session open while testing a second login.\n'

Эталонные файлы проекта.

Что именно делает этот опыт

ssh-keygen создаёт пару. На сервер уходит только файл .pub; приватный файл остаётся с режимом 600. Инструкции намеренно требуют держать первую сессию открытой, пока второй вход не доказан.

Что должно получиться

  • Приватный ключ не копируется на сервер.
  • Команда завершается предсказуемым кодом.
  • Результат можно повторить на чистой среде.

Соберите целое по опорной схеме

Опорная схема 20

Проведите пальцем или карандашом по четырём блокам и расскажите весь урок одним связным объяснением.

Воспроизведите без подсказки

  1. Закройте схему и нарисуйте четыре блока по памяти.
  2. Объясните каждый переход словами «потому что».
  3. Дайте определение одному новому термину, не повторяя текст дословно.
  4. Назовите один сигнал, который доказывает результат.

Найдите и исправьте ошибку

Ошибка: «Приватный ключ нужно скопировать на сервер, чтобы сервер узнал меня». Исправление: сервер хранит публичный ключ; приватный нельзя передавать.

Задание

Теперь соберите тот же смысл самостоятельно. Можно смотреть на опорную схему; цель — не экзамен на память, а воспроизводимый результат.

Обязательное. Напишите локальный POSIX sh-скрипт, который проверяет наличие private и public key, требует режим 600 у private key и печатает только fingerprint публичного ключа. Отправьте только команды или скрипт POSIX sh без реальных ключей и токенов.

Критерии готовности

  • Вы понимаете каждую запускаемую строку.
  • Повторный запуск даёт ожидаемый результат или безопасно объяснённое отличие.
  • В выводе нет настоящих ключей, токенов и паролей.
  • Вы можете показать факт, который подтверждает успех.

Если проверка не прошла, зафиксируйте ожидаемое и фактическое, вернитесь к одному разорванному звену опоры и повторите. Ошибка не отнимает у вас право продолжать обучение.

По желанию. Запишите один возможный отказ и сигнал, по которому вы его заметите.

Открытая перспектива

Следующий урок добавит новую опору: Домен, reverse proxy и автоматический HTTPS.

Оглавление курса

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить задание

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

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.