## Настройка доступа к серверу по 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 ``` --- ## 5. Включение входа по паролю ```bash sudo passwd root ``` Открыть конфиг: ```bash sudo nano /etc/ssh/sshd_config ``` ```text PasswordAuthentication yes PermitRootLogin yes ``` Перезапустить SSH: ```bash sudo systemctl restart ssh ```