Files
server-manager/tools/skill-ssh.md
chrome-storm-c442 efb508c982 v1.8.10: security audit fixes
- --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>
2026-02-24 04:56:16 -05:00

76 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Скилл /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)