94 lines
3.3 KiB
Markdown
94 lines
3.3 KiB
Markdown
## Настройка доступа к серверу по 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@<VM_IP>
|
|
```
|
|
|
|
- Либо создав/отредактировав файл вручную `~/.ssh/authorized_keys`
|
|
- `authorized_keys` может содержать несколько ключей — каждый ключ добавляется с новой строки.
|
|
|
|
- Проверить права на директорию и файл. Должны быть:
|
|
```bash
|
|
chmod 700 ~/.ssh
|
|
chmod 600 ~/.ssh/authorized_keys
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Проверка входа по ключу
|
|
|
|
```bash
|
|
ssh nebaryshev@<VM_IP>
|
|
```
|
|
|
|
Если пароль не запрашивается — всё работает.
|
|
|
|
---
|
|
|
|
## 4. Отключение входа по паролю
|
|
|
|
⚠️ Делать **ТОЛЬКО ПОСЛЕ** проверки входа по ключу.
|
|
|
|
Открыть конфиг:
|
|
```bash
|
|
sudo nano /etc/ssh/sshd_config
|
|
```
|
|
|
|
Изменить:
|
|
```text
|
|
PasswordAuthentication no
|
|
PermitRootLogin no
|
|
PubkeyAuthentication yes
|
|
```
|
|
|
|
Перезапустить SSH:
|
|
```bash
|
|
sudo systemctl restart ssh
|
|
```
|