Files
server-manager/tools/skill-ssh.md
chrome-storm-c442 afa3210260 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>
2026-02-24 06:51:59 -05:00

4.6 KiB
Raw Blame History

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

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

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

  • НИКОГДА не читай файлы в директории ~/.server-connections/ напрямую
  • НИКОГДА не читай файлы encryption.py, servers.json, settings.json
  • НИКОГДА не выводи пароли, IP-адреса, логины, порты пользователю и в контекст нейронки
  • НИКОГДА не используй --list-full — он выводит IP/порты/логины в контекст AI
  • Все операции только через python ~/.server-connections/ssh.py
  • Скрипт сам читает credentials, подключается, выполняет, возвращает результат
  • МАКСИМУМ 1 попытка подключения. Если timeout/ошибка — сообщи, НЕ повторяй
  • fail2ban банит IP после 5-10 неудач — спам попытками УБЬЁТ доступ к серверу
  • Серверы добавляются ТОЛЬКО через GUI ServerManager, НЕ через CLI

Аргументы

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

Команды

Список серверов (безопасный — alias, тип, ключ, заметки)

python ~/.server-connections/ssh.py --list

Информация о сервере (безопасная — без IP/логина/пароля/порта)

python ~/.server-connections/ssh.py --info ALIAS

Статус всех серверов (alias + online/offline)

python ~/.server-connections/ssh.py --status

Выполнить команду на сервере

python ~/.server-connections/ssh.py ALIAS "command"

Пример: python ~/.server-connections/ssh.py investor "uptime"

Выполнить команду БЕЗ sudo

python ~/.server-connections/ssh.py ALIAS --no-sudo "command"

Загрузить файл на сервер

python ~/.server-connections/ssh.py ALIAS --upload /local/path /remote/path

Скачать файл с сервера

python ~/.server-connections/ssh.py ALIAS --download /remote/path /local/path

Установить SSH-ключ на сервер

python ~/.server-connections/ssh.py ALIAS --install-key

Проверить доступность сервера

python ~/.server-connections/ssh.py ALIAS --ping

Обновить заметки сервера

python ~/.server-connections/ssh.py --set-note ALIAS "описание сервера"

Используй чтобы сохранить контекст: что на сервере работает, для чего он нужен.

Удалить сервер

python ~/.server-connections/ssh.py --remove ALIAS

Спроси подтверждение у пользователя перед удалением!

Альтернативный способ (только если SSH-ключ установлен)

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 на пароль если ключ не подходит

Правила

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