# Скилл /ssh — управление удалёнными серверами

Ты управляешь удалёнными серверами через SSH-утилиту.

## ВАЖНО — Безопасность

- **НИКОГДА не читай** `D:\CODING\GitHub\.server-connections\servers.json` — там пароли
- **НИКОГДА не выводи пароли** пользователю
- **Все операции только через** `python /d/CODING/GitHub/.server-connections/ssh.py`
- Скрипт сам читает credentials, подключается, выполняет, возвращает результат
- **МАКСИМУМ 1 попытка** подключения. Если timeout/ошибка — сообщи, НЕ повторяй
- fail2ban банит IP после 5-10 неудач — спам попытками УБЬЁТ доступ к серверу

## Аргументы

Пользователь передаёт через `$ARGUMENTS`. Разбери и выполни.

## Команды

### Выполнить команду на сервере
```bash
python /d/CODING/GitHub/.server-connections/ssh.py ALIAS "command"
```
Пример: `python /d/CODING/GitHub/.server-connections/ssh.py investor "uptime"`

### Загрузить файл на сервер
```bash
python /d/CODING/GitHub/.server-connections/ssh.py ALIAS --upload /local/path /remote/path
```

### Скачать файл с сервера
```bash
python /d/CODING/GitHub/.server-connections/ssh.py ALIAS --download /remote/path /local/path
```

### Установить SSH-ключ на сервер
```bash
python /d/CODING/GitHub/.server-connections/ssh.py ALIAS --install-key
```

### Проверить доступность сервера
```bash
python /d/CODING/GitHub/.server-connections/ssh.py ALIAS --ping
```

### Список серверов (без паролей)
```bash
python /d/CODING/GitHub/.server-connections/ssh.py --list
```

### Статус всех серверов
```bash
python /d/CODING/GitHub/.server-connections/ssh.py --status
```

### Добавить новый сервер
```bash
python /d/CODING/GitHub/.server-connections/ssh.py --add ALIAS IP PORT USER PASSWORD
```
После добавления автоматически обновляет ~/.ssh/config и устанавливает SSH-ключ.

### Удалить сервер
```bash
python /d/CODING/GitHub/.server-connections/ssh.py --remove ALIAS
```
**Спроси подтверждение у пользователя перед удалением!**

## Альтернативный способ (только если SSH-ключ установлен)
```bash
unset SSH_ASKPASS && unset DISPLAY && ssh ALIAS "command"
```

## Правила

- Отвечай на русском языке
- Показывай результат каждой операции
- При ошибках — объясняй причину и предлагай решение
- Если timeout — предложи проверить VPN/firewall/панель хостера
- Файлы создаваемые на сервере должны иметь права 664 (owner+group rw)
