diff --git a/02_SSH_SETUP.md b/02_SSH_SETUP.md new file mode 100644 index 0000000..880f513 --- /dev/null +++ b/02_SSH_SETUP.md @@ -0,0 +1,93 @@ +## Настройка доступа к серверу по SSH ключам + +> Это файл‑заметка, описывающий **опциональную настройку доступа к серверу по SSH‑ключам**. + +По умолчанию на сервере: +* вход по паролю **разрешён** +* вход по SSH‑ключу **разрешён** + +Для повышения безопасности **рекомендуется отключить вход по паролю**, предварительно: +* создав SSH‑ключи на клиенте +* загрузив публичный ключ на сервер +* убедившись, что вход по ключу работает + +Ниже — универсальная пошаговая инструкция. + +--- + +## 1. Генерация SSH-ключа на клиенте (Mac / Linux) + +**Рекомендуется** использовать ключ с _цифровой подписью ed25519_, сразу задавая _явное имя файла_ и _комментарий_, особенно если серверов несколько + +```bash +ssh-keygen -t ed25519 -f ~/.ssh/templatevm_key -C "servername@username" +``` + +Где: +* `ssh-keygen` — генератор SSH‑ключей +* `-t ed25519` — тип ключа (современный, быстрый, короткий) +* `~/.ssh/templatevm_key` — имя файла, где будет сохранена пара ключей +* `-C "servername@username"` — комментарий, чтобы ключи было легко различать + +В результате будет создано два ключа (публичный и приватный) в каталоге `~/.ssh/` +``` +~/.ssh/templatevm_key # приватный ключ +~/.ssh/templatevm_key.pub # публичный ключ +``` + +Если не указывать имя файла, ключи будут сохранены по умолчанию: +``` +~/.ssh/id_ed25519 # приватный ключ +~/.ssh/id_ed25519.pub # публичный ключ +``` + +--- + +## 2. Копирование публичного ключа на сервер + +- Скопировать ключ можно на сервер автоматически, используя +```bash + ssh-copy-id -i ~/.ssh/templatevm_key.pub nebaryshev@ +``` + +- Либо создав/отредактировав файл вручную `~/.ssh/authorized_keys` +- `authorized_keys` может содержать несколько ключей — каждый ключ добавляется с новой строки. + +- Проверить права на директорию и файл. Должны быть: +```bash +chmod 700 ~/.ssh +chmod 600 ~/.ssh/authorized_keys +``` + +--- + +## 3. Проверка входа по ключу + +```bash +ssh nebaryshev@ +``` + +Если пароль не запрашивается — всё работает. + +--- + +## 4. Отключение входа по паролю + +⚠️ Делать **ТОЛЬКО ПОСЛЕ** проверки входа по ключу. + +Открыть конфиг: +```bash +sudo nano /etc/ssh/sshd_config +``` + +Изменить: +```text +PasswordAuthentication no +PermitRootLogin no +PubkeyAuthentication yes +``` + +Перезапустить SSH: +```bash +sudo systemctl restart ssh +```