ludus-mcp
Version:
MCP server for managing Ludus cybersecurity training environments through natural language commands
52 lines • 1.46 kB
TypeScript
import type { Logger } from '../utils/logger.js';
export interface SSHTunnelConfig {
host: string;
port: number;
username: string;
authMethod: 'key' | 'password';
privateKeyPath?: string | undefined;
privateKeyPassphrase?: string | undefined;
password?: string | undefined;
regularPort: number;
primaryPort: number;
}
export declare class LudusSSHTunnelManager {
private sshConfig;
private logger;
private sshConnection?;
private regularTunnelServer?;
private primaryTunnelServer?;
private instanceId;
constructor(sshConfig: SSHTunnelConfig, logger: Logger);
connect(): Promise<void>;
disconnect(): Promise<void>;
/**
* Check if tunnels are healthy and responding
*/
checkTunnelHealth(): Promise<{
regularHealthy: boolean;
primaryHealthy: boolean;
}>;
/**
* Attempt to reconnect tunnels if they're not healthy
*/
ensureTunnelsHealthy(): Promise<void>;
/**
* Reconnect SSH tunnels
*/
private reconnectTunnels;
private ensureLockDir;
private acquireLock;
private releaseLock;
private readLockFile;
private writeLockFile;
private isProcessRunning;
private isTunnelPortOpen;
private startTunnels;
private waitForTunnels;
private addReference;
private removeReference;
private readReferences;
private writeReferences;
}
//# sourceMappingURL=sshTunnelManager.d.ts.map