Add ssh.md instruction
This commit is contained in:
parent
2de6904d34
commit
e221002baa
|
|
@ -0,0 +1,115 @@
|
||||||
|
# Инструкция по настройке SSH и отключению доступа по паролю
|
||||||
|
|
||||||
|
## 1. Генерация SSH-ключа
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Создаём пару ключей (по умолчанию RSA 2048 бит, можно указать тип и размер)
|
||||||
|
ssh-keygen -t ed25519 -C "your_email@example.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
- При запросе расположения файла нажмите Enter (по умолчанию `~/.ssh/id_ed25519`).
|
||||||
|
- При желании задайте пароль (passphrase) для защиты ключа. Оставьте пустым, если не нужен пароль при каждом использовании.
|
||||||
|
|
||||||
|
Получится два файла:
|
||||||
|
- `~/.ssh/id_ed25519` — приватный ключ (никогда не передавайте его!)
|
||||||
|
- `~/.ssh/id_ed25519.pub` — публичный ключ, который нужно разместить на сервере.
|
||||||
|
|
||||||
|
## 2. Копирование публичного ключа на сервер
|
||||||
|
|
||||||
|
Если у вас уже есть доступ к серверу по паролю (или другому методу), можно использовать `ssh-copy-id`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server_ip
|
||||||
|
```
|
||||||
|
|
||||||
|
Или вручную:
|
||||||
|
1. Скопировать содержимое файла `id_ed25519.pub`.
|
||||||
|
2. На сервере открыть файл `~/.ssh/authorized_keys` (создать, если отсутствует) и вставить ключ в новую строку.
|
||||||
|
3. Убедиться, что у файла и каталога правильные права:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod 700 ~/.ssh
|
||||||
|
chmod 600 ~/.ssh/authorized_keys
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Отключение аутентификации по паролю и изменение порта SSH
|
||||||
|
|
||||||
|
Редактируем конфигурацию SSH демона (`/etc/ssh/sshd_config`):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo nano /etc/ssh/sshd_config
|
||||||
|
```
|
||||||
|
|
||||||
|
Найдите или добавьте/измените следующие строки:
|
||||||
|
|
||||||
|
```
|
||||||
|
# Изменяем порт (например, на 2222)
|
||||||
|
Port 2222
|
||||||
|
|
||||||
|
# Отключаем вход по паролю
|
||||||
|
PasswordAuthentication no
|
||||||
|
|
||||||
|
# Оставляем только публичный ключ
|
||||||
|
PubkeyAuthentication yes
|
||||||
|
|
||||||
|
# (опционально) запрещаем вход root напрямую
|
||||||
|
PermitRootLogin prohibit-password
|
||||||
|
```
|
||||||
|
|
||||||
|
Сохраните файл и выйдите.
|
||||||
|
|
||||||
|
### Перезапуск SSH службы
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Для систем с systemd
|
||||||
|
sudo systemctl restart sshd
|
||||||
|
|
||||||
|
# Или для старых систем
|
||||||
|
sudo service ssh restart
|
||||||
|
```
|
||||||
|
|
||||||
|
**Важно:** Не закрывайте текущую SSH-сессию, пока не проверите, что новый вход работает!
|
||||||
|
|
||||||
|
### Проверка подключения
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh -p 2222 user@your_server_ip
|
||||||
|
```
|
||||||
|
|
||||||
|
Если подключение успешно — можно закрыть текущую сессию.
|
||||||
|
|
||||||
|
## 4. Закрытие стандартного порта 22 (опционально)
|
||||||
|
|
||||||
|
После подтверждения, что вход на новый порт работает и аутентификация по ключу функционирует, можно закрыть порт 22 в firewall.
|
||||||
|
|
||||||
|
### Пример для ufw (Ubuntu/Debian)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ufw deny 22/tcp
|
||||||
|
sudo ufw allow 2222/tcp
|
||||||
|
sudo ufw reload
|
||||||
|
```
|
||||||
|
|
||||||
|
### Пример для firewalld (CentOS/RHEL)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo firewall-cmd --permanent --remove-service=ssh
|
||||||
|
sudo firewall-cmd --permanent --add-port=2222/tcp
|
||||||
|
sudo firewall-cmd --reload
|
||||||
|
```
|
||||||
|
|
||||||
|
### Пример для iptables
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
|
||||||
|
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
|
||||||
|
sudo netfilter-persistent save # если используется сохранение правил
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5. Итоги
|
||||||
|
|
||||||
|
- Вы сгенерировали пару SSH-ключей (приватный остаётся у вас, публичный размещён на сервере).
|
||||||
|
- Настроили SSH-демон на использование ключевой аутентификации, отключили вход по паролю и изменили порт с 22 на выбранный (например, 2222).
|
||||||
|
- Проверили подключение по новому порту и закрыли доступ к порту 22 через firewall.
|
||||||
|
|
||||||
|
Теперь ваш сервер защищён от brute-force атак по порту 22 и допускает только авторизацию по SSH-ключу.
|
||||||
Loading…
Reference in New Issue