- --list and --status no longer expose IP/port/user (only aliases) - --list-full for admin use (not in skill) - Removed --add from /ssh skill (servers added via GUI only) - Removed exact file paths from skill template - Added deny-read rules for ~/.server-connections/ files - Wrapped main() in try/except to prevent traceback leaking - Added needs_reencrypt() to encryption.py for future migration - install_key no longer prints server IP Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
76 lines
3.2 KiB
Markdown
76 lines
3.2 KiB
Markdown
# Скилл /ssh — управление удалёнными серверами
|
||
|
||
Ты управляешь удалёнными серверами через SSH-утилиту.
|
||
|
||
## ВАЖНО — Безопасность
|
||
|
||
- **НИКОГДА не читай файлы** в директории `~/.server-connections/` напрямую
|
||
- **НИКОГДА не читай** файлы `encryption.py`, `servers.json`, `settings.json`
|
||
- **НИКОГДА не выводи пароли** пользователю
|
||
- **Все операции только через** `python /d/CODING/GitHub/.server-connections/ssh.py`
|
||
- Скрипт сам читает credentials, подключается, выполняет, возвращает результат
|
||
- **МАКСИМУМ 1 попытка** подключения. Если timeout/ошибка — сообщи, НЕ повторяй
|
||
- fail2ban банит IP после 5-10 неудач — спам попытками УБЬЁТ доступ к серверу
|
||
- **Серверы добавляются ТОЛЬКО через GUI** ServerManager, НЕ через CLI
|
||
|
||
## Аргументы
|
||
|
||
Пользователь передаёт через `$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
|
||
```
|
||
|
||
### Список серверов (только алиасы, без IP/паролей)
|
||
```bash
|
||
python /d/CODING/GitHub/.server-connections/ssh.py --list
|
||
```
|
||
|
||
### Статус всех серверов (только алиасы + online/offline)
|
||
```bash
|
||
python /d/CODING/GitHub/.server-connections/ssh.py --status
|
||
```
|
||
|
||
### Удалить сервер
|
||
```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)
|