Files
Ubuntu/02_SSH_SETUP.md
T
2026-04-17 23:38:46 +03:00

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