раздел 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.