Skip to main content
Glama
brianShih

SSH-MCP Secure

by brianShih

🔐 SSH-MCP Secure

Высокозащищённый SSH MCP-сервер — корпоративное управление SSH с искусственным интеллектом и безопасностью военного уровня

License: MIT MCP Compatible Security: SOC2 TypeScript Node.js

🌟 Ключевые возможности

🔒 Безопасность корпоративного уровня

  • Шифрование AES-256-GCM — защита всех учётных данных шифрованием военного уровня

  • Многофакторная аутентификация (MFA) — поддержка TOTP + резервных кодов

  • Аутентификация по SSH-ключам — поддержка ED25519 и RSA-4096

  • Управление доступом на основе ролей (RBAC) — детальное управление правами

  • Защита автоматическим выключателем — 8 отказоустойчивых контуров защищают ключевые сервисы

  • Полные журналы аудита — полная отчётность для соответствия требованиям

🤖 ИИ-интеллект

  • Контекстно-зависимая помощь — рекомендации команд в реальном времени на основе текущего контекста

  • Определение технологического стека — автоматическое распознавание стека проекта и рекомендации

  • Распознавание шаблонов — изучение истории команд на основе машинного обучения

  • GitHub-интеллект — анализ сообщества и поиск лучших практик

  • Прогнозные операции — прогнозирование проблем с помощью анализа тенденций

📊 Мониторинг и соответствие требованиям

  • Метрики Prometheus — мониторинг производительности в реальном времени

  • Панель Grafana — визуализация состояния системы

  • Структуры соответствия — SOC2, GDPR, NIST, HIPAA, PCI-DSS, ISO 27001

  • Анализ ошибок — интеллектуальная диагностика ошибок

  • Управление оповещениями — упреждающие оповещения и автоматическое восстановление

Related MCP server: sshops

📋 Содержание

🛠️ Установка

Предварительные требования

  • Node.js 18+ и npm/yarn

  • Claude Code CLI (необязательно, для интеграции MCP)

  • Доступ по SSH к целевым серверам

  • Git

Шаги установки

# Clone 倉庫
git clone https://github.com/your-org/ssh-mcp-secure.git
cd ssh-mcp-secure

# 安裝依賴
npm install

# 構建項目
npm run build

# 配置環境變量
cp .env.example .env
# 編輯 .env 文件填入實際配置

# 測試安裝
npm run security:audit

🚀 Быстрый старт

1. Настройка учётных данных сервера

Создайте файл .env:

# 服務器配置
MY_SERVER_HOST=example.com
MY_SERVER_PORT=22
MY_SERVER_USERNAME=myuser
MY_SERVER_PRIVATE_KEY_PATH=/path/to/private_key
MY_SERVER_DEFAULT_DIR=/home/myuser
MY_SERVER_DESCRIPTION=Production Server

# 安全設置
SSH_ALLOW_PASSWORD_AUTH=false
SSH_REQUIRE_KEY_AUTH=true
SSH_MAX_AUTH_RETRIES=3
SSH_LOCKOUT_DURATION=300

# MFA 設置
MFA_ENABLED=true
MFA_REQUIRED_FOR_PRODUCTION=true

# 加密設置
ENCRYPTION_ALGORITHM=AES-256-GCM
ENCRYPTION_KEY_ROTATION_DAYS=90

# 審計日誌
AUDIT_ENABLED=true
AUDIT_LOG_PATH=/var/log/ssh-mcp/audit.log

2. Генерация SSH-ключей

# 生成 ED25519 密鑰 (推薦)
ssh-keygen -t ed25519 -a 100 -C "your_email@example.com"

# 或生成 RSA-4096 密鑰
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 設置正確的權限
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

3. Настройка MFA

При первом подключении система автоматически сгенерирует настройки MFA:

# 啟動服務器
npm start

# 掃描 QR 碼配置 TOTP
# 使用 Google Authenticator 或 Authy

4. Подключение и выполнение

// 安全連接
const session = await secureConnect({
  serverName: "my-server",
  requireMFA: true
});

// 執行命令
const result = await secureExecute({
  sessionId: session.sessionId,
  command: "ls -la"
});

console.log(result.stdout);

⚙️ Конфигурация

Переменные окружения

Конфигурация сервера

# 命名規範:SERVERNAME_PROPERTY
SERVERNAME_HOST=hostname.com
SERVERNAME_PORT=22
SERVERNAME_USERNAME=username
SERVERNAME_PASSWORD=password        # 可選 (不推薦)
SERVERNAME_PRIVATE_KEY_PATH=/path   # 推薦
SERVERNAME_PASSPHRASE=passphrase    # 可選 (加密密鑰)
SERVERNAME_DEFAULT_DIR=/home/user   # 可選
SERVERNAME_DESCRIPTION=Description   # 可選

Настройки безопасности

# 認證安全
SSH_ALLOW_PASSWORD_AUTH=false      # 生產環境禁用密碼
SSH_REQUIRE_KEY_AUTH=true          # 要求密鑰認證
SSH_MAX_AUTH_RETRIES=3             # 最大認證嘗試
SSH_LOCKOUT_DURATION=300           # 鎖定時長 (秒)

# SSH 密鑰安全
SSH_KEY_TYPE=ed25519               # 推薦:ed25519
SSH_KEY_MIN_BITS=4096              # 最小 RSA 密鑰位數
SSH_KEY_PASSPHRASE_REQUIRED=true   # 要求密鑰短語

# 連接安全
SSH_MAX_RETRIES=3
SSH_RETRY_DELAY=2000
SSH_CONNECTION_TIMEOUT=20000
SSH_STRICT_HOST_KEY_CHECKING=true

Настройки MFA

MFA_ENABLED=true
MFA_REQUIRED_FOR_PRODUCTION=true
MFA_TOTP_ISSUER=SSH-MCP-Secure
MFA_TOTP_DIGITS=6
MFA_TOTP_PERIOD=30
MFA_BACKUP_CODES_COUNT=10

Настройки шифрования

ENCRYPTION_ALGORITHM=AES-256-GCM
ENCRYPTION_KEY_LENGTH=256
ENCRYPTION_KEY_ROTATION_DAYS=90
ENCRYPTION_MASTER_KEY=<your-64-char-hex-key>

Журналы аудита

AUDIT_ENABLED=true
AUDIT_LOG_PATH=/var/log/ssh-mcp/audit.log
AUDIT_RETENTION_DAYS=90
AUDIT_LOG_FORMAT=json
AUDIT_AUTH_EVENTS=true
AUDIT_COMMAND_EXECUTION=true
AUDIT_FILE_OPERATIONS=true

🔒 Функции безопасности

1. Шифрование

  • AES-256-GCM шифрует все учётные данные

  • TLS 1.3 для внешних коммуникаций

  • SSH Protocol 2 для всех SSH-подключений

  • Ротация ключей — автоматическая ротация каждые 90 дней

2. Аутентификация

  • Многофакторная аутентификация (MFA) — TOTP + резервные коды

  • Аутентификация по SSH-ключам — ED25519/RSA-4096

  • Аутентификация по паролю — необязательно (рекомендуется отключить в производственной среде)

  • Тайм-аут сеанса — автоматическое истечение через 1 час

3. Управление доступом

  • Управление доступом на основе ролей (RBAC)

    • admin — полный доступ

    • operator — права оператора

    • developer — права разработчика

    • viewer — доступ только для чтения

  • Принцип минимальных привилегий — по умолчанию запрещён весь доступ

  • Аудит всех проверок прав — полная трассировка аудита

4. Аудит и соответствие

  • Полные журналы аудита

    • Все события аутентификации

    • Все выполнения команд

    • Все операции с файлами

    • Все события сеансов

    • Все изменения прав

    • Все обращения к учётным данным

  • Поддержка структур соответствия

    • SOC2 Type II

    • GDPR

    • NIST Cybersecurity Framework

    • HIPAA (настраивается)

    • PCI-DSS (настраивается)

    • ISO 27001 (настраивается)

5. Отказоустойчивая защита

  • Автоматический выключатель — защита ключевых сервисов

    • SSH-подключения

    • Кэш Redis

    • Сервис аутентификации

    • Проверка MFA

    • Сервис шифрования

  • Автоматические повторы — экспоненциальная задержка

  • Проверка работоспособности — мониторинг работоспособности пула подключений

📊 Мониторинг

Метрики Prometheus

# SSH 連接
ssh_connections_active
ssh_commands_total
ssh_errors_total
ssh_command_duration_seconds

# 認證
auth_failures_total
mfa_verifications_total

# 緩存
cache_hits_total
cache_misses_total
cache_hit_rate

# 電路斷路器
circuit_breaker_trips_total
circuit_breaker_state

Панель Grafana

Посетите http://localhost:3000 для просмотра панели Grafana.

Оповещения

Настройка уведомлений об оповещениях:

ALERTING_ENABLED=true
ALERT_EMAIL=admin@example.com
ALERT_WEBHOOK_URL=https://hooks.slack.com/xxx
ALERT_THRESHOLD_CRITICAL=5
ALERT_THRESHOLD_WARNING=10

🔍 Лучшие практики безопасности

1. Переменные окружения

# 永遠不要提交 .env 文件
echo ".env*" >> .gitignore

# 使用強密碼
export ENCRYPTION_MASTER_KEY=$(openssl rand -hex 32)

# 限制文件權限
chmod 600 .env

2. SSH-ключи

# 生成安全密鑰
ssh-keygen -t ed25519 -a 100

# 設置正確權限
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

3. Управление учётными данными

  • Используйте ротацию учётных данных (по умолчанию 90 дней)

  • Включите MFA для производственной среды

  • Регулярно проводите аудит доступа к учётным данным

  • Используйте отдельные учётные данные для каждой среды

4. Сетевая безопасность

  • По возможности используйте белые списки IP-адресов

  • Используйте шлюзовые серверы для чувствительных серверов

  • Включите ограничение скорости SSH

  • Отслеживайте подозрительную активность

📚 Справочник по API

Управление подключениями

// 安全連接到預定義服務器
secureConnect(params: {
  serverName: string
  requireMFA?: boolean
}): Promise<{
  sessionId: string
  sessionToken: string
  expiresAt: number
  mfaVerified: boolean
}>

// 列出配置的服務器
listPredefinedServers(): Promise<Record<string, ServerInfo>>

Выполнение команд

// 執行遠程命令
secureExecute(params: {
  sessionId: string
  command: string
  timeout?: number
}): Promise<{
  success: boolean
  stdout: string
  stderr: string
  exitCode: number
  audited: true
}>

Операции с файлами

// 智能文件編輯
smartFileEdit(params: {
  sessionId: string
  filePath: string
  operations: EditOperation[]
  strategy?: EditStrategy
}): Promise<EditResult>

Отчёты о соответствии

// 生成合規報告
generateComplianceReport(params: {
  framework: 'soc2' | 'gdpr' | 'nist'
  startDate: string
  endDate: string
}): Promise<ComplianceReport>

🤝 Вклад в проект

Мы приветствуем вклад! Ознакомьтесь с нашим руководством по вкладу.

Настройка разработки

# Clone 和安裝
git clone https://github.com/your-org/ssh-mcp-secure.git
cd ssh-mcp-secure
npm install

# 運行測試
npm test

# 構建
npm run build

# 監聽模式
npm run watch

# 代碼檢查
npm run lint

# 安全審計
npm run security:audit

📄 Лицензия

Лицензия MIT — см. файл LICENSE

📞 Контакты


Помните: безопасность — это ответственность каждого. Если сомневаетесь — спрашивайте!

🔐 Контрольный список безопасности

Перед развёртыванием:

  • Настройте полный .gitignore

  • Установите план ротации учётных данных

  • Включите MFA для производственного доступа

  • Настройте мониторинг соответствия

  • Регулярно просматривайте журналы аудита

  • Установите ENCRYPTION_MASTER_KEY

  • Отключите аутентификацию по паролю

  • Настройте правила брандмауэра

  • Настройте мониторинг и оповещения

  • Задокументируйте аварийные процедуры

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables remote SSH command execution and bidirectional file transfers through a standardized interface. It allows AI assistants to securely manage remote servers while keeping credentials isolated and applying command-level security controls.
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    A lightweight, zero-agent SSH operations tool that enables remote command execution, file transfer, and audit logging. It integrates as an MCP server for AI-driven infrastructure management.
    10 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    SSH-based MCP server that enables remote execution of SSH commands, file transfers, and secure server management via the MCP protocol.
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for managing remote SSH servers, enabling AI agents to execute commands, transfer files, and perform deployment operations securely.
    MIT