プロジェクト

全般

プロフィール

バグ #310

未完了

Phase 1: SSH統合管理機能実装

Redmine Admin さんが約18時間前に追加.

ステータス:
新規
優先度:
高め
担当者:
-
開始日:
2025-06-07
期日:
進捗率:

0%

予定工数:

説明

複数リモートサーバーへのSSH接続・コマンド実行・ファイル操作機能を実装する。

実装機能

SSH管理ツール

ssh_execute(host, command, timeout)     // リモートコマンド実行
ssh_file_read(host, path)               // ファイル読み取り
ssh_file_write(host, path, content)     // ファイル書き込み
ssh_directory_list(host, path)          // ディレクトリ一覧

管理対象ホスト

  • VPS-ROOT: 85.131.243.51 (Ubuntu 24.04)
  • Windows端末: 160.251.155.93 (Windows + WSL)
  • 追加サーバー: 設定可能な拡張性

セキュリティ機能

  • SSH鍵認証 (秘密鍵管理)
  • 接続プール管理
  • コマンド実行ログ
  • タイムアウト制御

技術仕様

  • SSH Library: node-ssh
  • Connection Pool: Map<userId:host, NodeSSH>
  • Session Store: Redis (接続情報・ログ)
  • Security: SSH鍵ペア認証のみ

実装内容

class SSHManager {
  private connections: Map<string, NodeSSH>
  private redis: Redis

  async execute(userId, host, command, timeout)
  async readFile(userId, host, path)  
  async writeFile(userId, host, path, content)
  private async getConnection(userId, host)
  private async logActivity(userId, host, action, details)
}

セキュリティ考慮

  • SSH鍵ファイル権限: 600
  • 実行コマンドのログ記録
  • 危険コマンドのブラックリスト
  • ユーザー別アクセス制御

成果物

  • SSH管理モジュール実装
  • 複数ホスト接続テスト完了
  • セキュリティポリシー適用

実装期間

Week 1-2 (24時間)

依存関係

  • SSH鍵ペア設定
  • 対象ホストでのSSH受け入れ設定

表示するデータがありません

他の形式にエクスポート: Atom PDF