SSH-MCP Secure
🔐 SSH-MCP Secure
고보안 SSH MCP 서버 - AI 인텔리전스와 군사급 보안을 갖춘 엔터프라이즈급 SSH 관리
🌟 핵심 기능
🔒 엔터프라이즈급 보안
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.log2. 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.pub3. MFA 구성
최초 연결 시 시스템이 자동으로 MFA 설정을 생성합니다:
# 啟動服務器
npm start
# 掃描 QR 碼配置 TOTP
# 使用 Google Authenticator 或 Authy4. 연결 및 실행
// 安全連接
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=trueMFA 설정
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_stateGrafana 대시보드
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 .env2. SSH 키
# 生成安全密鑰
ssh-keygen -t ed25519 -a 100
# 設置正確權限
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub3. 자격 증명 관리
자격 증명 교체 사용 (기본 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 파일 참조
📞 연락처
보안 문제: security@example.com
일반 지원: support@example.com
기억하세요: 보안은 모든 사람의 책임입니다. 의심스러우면 물어보세요!
🔐 보안 체크리스트
배포 전:
완전한
.gitignore구성자격 증명 교체 계획 설정
프로덕션 접근에 MFA 활성화
규정 준수 모니터링 구성
감사 로그 정기 검토
ENCRYPTION_MASTER_KEY 설정
비밀번호 인증 비활성화
방화벽 규칙 구성
모니터링 및 알림 설정
비상 절차 문서화
This server cannot be installed
Maintenance
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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