Skip to main content
Glama
brianShih

SSH-MCP Secure

by brianShih

🔐 SSH-MCP Secure

고보안 SSH MCP 서버 - AI 인텔리전스와 군사급 보안을 갖춘 엔터프라이즈급 SSH 관리

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

  • 오류 분석 - 지능형 오류 진단

  • 알림 관리 - 사전 예방적 알림 및 자동 복구

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 사이버 보안 프레임워크

    • 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