Files
server-manager/tools/skill-ssh.md
chrome-storm-c442 e75afddb99 fix: SFTP paths on Windows — double-slash for remote, remove broken MSYS env
- Remote paths in upload/download require // prefix on Windows/Git Bash
- Removed useless MSYS_NO_PATHCONV from Python (must be shell-level)
- Removed broken bash wrapper
- Updated skill docs with // path rule and examples

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 07:14:49 -05:00

4.9 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 "D:/path/local/file" //remote/path/file

ВАЖНО (Windows/Git Bash): remote path ОБЯЗАТЕЛЬНО с двойным слешем //home/..., //tmp/.... Одинарный / будет сконвертирован Git Bash в Windows-путь и сломает SFTP.

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

python ~/.server-connections/ssh.py ALIAS --download //remote/path/file "D:/path/local/file"

Remote 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 если нужны детали