v1.8.23: upgrade ssh.py + skill for secure Claude Code integration
- Add --info (safe server details without credentials) - Add --set-note (update server notes for context) - Add --no-sudo flag documentation in skill - Fix --add leaking user@ip:port in output - Add WARNING to --list-full, forbid in skill - Add notes column to --list output - Update skill: portable path ~/.server-connections/, security rules, behavior docs - Update CLAUDE.md: security section, architecture, dev commands, doc references Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,8 +6,9 @@
|
||||
|
||||
- **НИКОГДА не читай файлы** в директории `~/.server-connections/` напрямую
|
||||
- **НИКОГДА не читай** файлы `encryption.py`, `servers.json`, `settings.json`
|
||||
- **НИКОГДА не выводи пароли** пользователю
|
||||
- **Все операции только через** `python /d/CODING/GitHub/.server-connections/ssh.py`
|
||||
- **НИКОГДА не выводи пароли, IP-адреса, логины, порты** пользователю и в контекст нейронки
|
||||
- **НИКОГДА не используй** `--list-full` — он выводит IP/порты/логины в контекст AI
|
||||
- **Все операции только через** `python ~/.server-connections/ssh.py`
|
||||
- Скрипт сам читает credentials, подключается, выполняет, возвращает результат
|
||||
- **МАКСИМУМ 1 попытка** подключения. Если timeout/ошибка — сообщи, НЕ повторяй
|
||||
- fail2ban банит IP после 5-10 неудач — спам попытками УБЬЁТ доступ к серверу
|
||||
@@ -19,45 +20,61 @@
|
||||
|
||||
## Команды
|
||||
|
||||
### Список серверов (безопасный — alias, тип, ключ, заметки)
|
||||
```bash
|
||||
python ~/.server-connections/ssh.py --list
|
||||
```
|
||||
|
||||
### Информация о сервере (безопасная — без IP/логина/пароля/порта)
|
||||
```bash
|
||||
python ~/.server-connections/ssh.py --info ALIAS
|
||||
```
|
||||
|
||||
### Статус всех серверов (alias + online/offline)
|
||||
```bash
|
||||
python ~/.server-connections/ssh.py --status
|
||||
```
|
||||
|
||||
### Выполнить команду на сервере
|
||||
```bash
|
||||
python /d/CODING/GitHub/.server-connections/ssh.py ALIAS "command"
|
||||
python ~/.server-connections/ssh.py ALIAS "command"
|
||||
```
|
||||
Пример: `python ~/.server-connections/ssh.py investor "uptime"`
|
||||
|
||||
### Выполнить команду БЕЗ sudo
|
||||
```bash
|
||||
python ~/.server-connections/ssh.py ALIAS --no-sudo "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
|
||||
python ~/.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
|
||||
python ~/.server-connections/ssh.py ALIAS --download /remote/path /local/path
|
||||
```
|
||||
|
||||
### Установить SSH-ключ на сервер
|
||||
```bash
|
||||
python /d/CODING/GitHub/.server-connections/ssh.py ALIAS --install-key
|
||||
python ~/.server-connections/ssh.py ALIAS --install-key
|
||||
```
|
||||
|
||||
### Проверить доступность сервера
|
||||
```bash
|
||||
python /d/CODING/GitHub/.server-connections/ssh.py ALIAS --ping
|
||||
python ~/.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
|
||||
python ~/.server-connections/ssh.py --set-note ALIAS "описание сервера"
|
||||
```
|
||||
Используй чтобы сохранить контекст: что на сервере работает, для чего он нужен.
|
||||
|
||||
### Удалить сервер
|
||||
```bash
|
||||
python /d/CODING/GitHub/.server-connections/ssh.py --remove ALIAS
|
||||
python ~/.server-connections/ssh.py --remove ALIAS
|
||||
```
|
||||
**Спроси подтверждение у пользователя перед удалением!**
|
||||
|
||||
@@ -66,6 +83,13 @@ python /d/CODING/GitHub/.server-connections/ssh.py --remove ALIAS
|
||||
unset SSH_ASKPASS && unset DISPLAY && ssh ALIAS "command"
|
||||
```
|
||||
|
||||
## Поведение
|
||||
|
||||
- **Auto-sudo**: если user на сервере не root — команды автоматически оборачиваются в `sudo -S`, пароль подаётся через stdin. Тебе НЕ нужно добавлять `sudo` в команду
|
||||
- **--no-sudo**: если команда не требует root (например `ls`, `cat`), используй `--no-sudo` для скорости
|
||||
- **Timeout**: 120 секунд на команду, 15 секунд на подключение
|
||||
- **SSH-ключ**: пробуется первым, fallback на пароль если ключ не подходит
|
||||
|
||||
## Правила
|
||||
|
||||
- Отвечай на русском языке
|
||||
@@ -73,3 +97,4 @@ unset SSH_ASKPASS && unset DISPLAY && ssh ALIAS "command"
|
||||
- При ошибках — объясняй причину и предлагай решение
|
||||
- Если timeout — предложи проверить VPN/firewall/панель хостера
|
||||
- Файлы создаваемые на сервере должны иметь права 664 (owner+group rw)
|
||||
- При вопросе о серверах — СНАЧАЛА `--list`, потом `--info ALIAS` если нужны детали
|
||||
|
||||
Reference in New Issue
Block a user