Skip to main content
Glama
brianShih

SSH-MCP Secure

by brianShih

🔐 SSH-MCP Secure

高セキュリティ SSH MCP サーバー - Enterprise-grade SSH management with AI intelligence and military-grade security

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

🌟 主な特徴

🔒 エンタープライズ級のセキュリティ

  • AES-256-GCM 暗号化 - ミリタリーグレードの暗号化で全認証情報を保護

  • 多要素認証 (MFA) - TOTP + バックアップコード対応

  • SSH 鍵認証 - ED25519 および RSA-4096 対応

  • ロールベースのアクセス制御 (RBAC) - きめ細かな権限管理

  • サーキットブレーカー保護 - 8 つの弾性回路で重要サービスを保護

  • 包括的な監査ログ - 完全なコンプライアンスレポート

🤖 AI インテリジェンス

  • コンテキスト認識アシスタンス - 現在のコンテキストに基づくリアルタイムのコマンド提案

  • 技術スタック検出 - プロジェクトスタックの自動識別と推奨

  • パターン認識 - ML 駆動のコマンド履歴学習

  • GitHub インテリジェンス - コミュニティパターンのマイニングとベストプラクティスの発見

  • 予測的オペレーション - トレンド分析による問題の予測

📊 モニタリングとコンプライアンス

  • Prometheus メトリクス - リアルタイムのパフォーマンス監視

  • Grafana ダッシュボード - システムヘルスの可視化

  • コンプライアンスフレームワーク - SOC2, GDPR, NIST, HIPAA, PCI-DSS, ISO 27001

  • エラー分析 - インテリジェントなエラー診断

  • アラート管理 - プロアクティブなアラートと自動修復

📋 目次

🛠️ インストール

前提条件

  • 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 - LICENSE ファイルをご覧ください

📞 お問い合わせ


覚えておいてください:セキュリティは全員の責任です。疑問があれば、質問してください!

🔐 セキュリティチェックリスト

デプロイ前:

  • 完全な .gitignore を設定

  • 認証情報のローテーション計画を設定

  • 本番アクセスに MFA を有効化

  • コンプライアンスモニタリングを設定

  • 監査ログを定期的にレビュー

  • ENCRYPTION_MASTER_KEY を設定

  • パスワード認証を無効化

  • ファイアウォールルールを設定

  • モニタリングとアラートを設定

  • 緊急時手順を文書化

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • An MCP server for Arcjet - the runtime security platform that ships with your AI code.

  • MCP server teaching AI agents to implement TideCloak: auth, E2EE, IGA, security analysis

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brianShih/ssh-mcp-secure'

If you have feedback or need assistance with the MCP directory API, please join our Discord server