раздел 03 · подстраница 1

Генерация ключей (macOS/Windows)

Что это

Прежде чем добавить публичный ключ на сервер, пару ключей надо создать у себя на компьютере. Делается это одной командой ssh-keygen - одинаково на macOS, Linux и современном Windows.

Зачем

Без пары ключей нечего класть на сервер. Сгенерировали один раз - и пользуетесь этой парой для всех своих серверов.

Как: macOS / Linux

Откройте Терминал и выполните:

ssh-keygen -t ed25519 -C "ваша-почта@example.com"
  • ed25519 - современный и безопасный тип ключа (предпочтительнее старого RSA).
  • На вопрос о пути нажмите Enter (сохранит в стандартное место).
  • Можно задать passphrase (пароль на сам ключ) - дополнительная защита, если кто-то получит доступ к файлу.

Где лежат ключи после генерации:

~/.ssh/id_ed25519        <- приватный ключ (НИКОМУ)
~/.ssh/id_ed25519.pub    <- публичный ключ (его на сервер)

Посмотреть публичный ключ, чтобы скопировать:

cat ~/.ssh/id_ed25519.pub

Скопируйте всю строку - она начинается с ssh-ed25519 и заканчивается вашей почтой.

Как: Windows

В современном Windows есть встроенный OpenSSH. Откройте PowerShell и выполните ту же команду:

ssh-keygen -t ed25519 -C "ваша-почта@example.com"

Где лежат ключи на Windows:

C:\Users\ВашеИмя\.ssh\id_ed25519       <- приватный (НИКОМУ)
C:\Users\ВашеИмя\.ssh\id_ed25519.pub   <- публичный (на сервер)

Посмотреть публичный ключ:

type C:\Users\ВашеИмя\.ssh\id_ed25519.pub

Что добавлять на сервер

При создании сервера в Selectel вставляете содержимое id_ed25519.pub целиком - одну строку вида:

ssh-ed25519 AAAAC3Nza...длинная-строка... ваша-почта@example.com

Пример

На Mac выполнили ssh-keygen -t ed25519 -C "me@mail.ru", нажали Enter на все вопросы, затем cat ~/.ssh/id_ed25519.pub, скопировали строку и вставили в поле SSH-ключа при создании сервера. После создания зашли командой ssh root@IP без пароля.

Антипаттерны

  • Скопировать приватный ключ вместо публичного. На сервер - только .pub.
  • Генерировать новую пару под каждый сервер. Не нужно: одна ваша пара работает для всех серверов, куда вы добавили публичный ключ.
  • Хранить приватный ключ в облаке или Git. Это утечка. Держите его только локально.

Что дальше

Ключи готовы, доступ настроен. Переходим к базовой настройке сервера: обновления, firewall, домен и SSL.