webssh2-server
Version:
A Websocket to SSH2 gateway using xterm.js, socket.io, ssh2
73 lines (72 loc) • 2.77 kB
TypeScript
export declare const MESSAGES: {
readonly INVALID_CREDENTIALS: "Invalid credentials format";
readonly SSH_CONNECTION_ERROR: "SSH CONNECTION ERROR";
readonly SHELL_ERROR: "SHELL ERROR";
readonly CONFIG_ERROR: "CONFIG_ERROR";
readonly UNEXPECTED_ERROR: "An unexpected error occurred";
readonly EXPRESS_APP_CONFIG_ERROR: "Failed to configure Express app";
readonly CLIENT_FILE_ERROR: "Error loading client file";
readonly FAILED_SESSION_SAVE: "Failed to save session";
readonly CONFIG_VALIDATION_ERROR: "Config validation error";
};
export declare const DEFAULTS: {
readonly SSH_PORT: 22;
readonly LISTEN_PORT: 2222;
readonly SSH_TERM: "xterm-256color";
readonly TERM_ROWS: 24;
readonly TERM_COLS: 80;
readonly IO_PING_TIMEOUT_MS: 60000;
readonly IO_PING_INTERVAL_MS: 25000;
readonly IO_PATH: "/ssh/socket.io";
readonly WEBSSH2_CLIENT_PATH: string;
readonly CLIENT_FILE: "client.htm";
readonly MAX_AUTH_ATTEMPTS: 2;
readonly SSH_READY_TIMEOUT_MS: 20000;
readonly SSH_KEEPALIVE_INTERVAL_MS: 120000;
readonly SSH_KEEPALIVE_COUNT_MAX: 10;
readonly HSTS_MAX_AGE_SECONDS: 31536000;
readonly SESSION_COOKIE_NAME: "webssh2.sid";
readonly SESSION_TIMEOUT_MS: 86400000;
readonly SSO_HEADERS: {
readonly USERNAME: "x-apm-username";
readonly PASSWORD: "x-apm-password";
readonly SESSION: "x-apm-session";
};
};
export declare const ENV_LIMITS: {
readonly MAX_PAIRS: 50;
readonly MAX_KEY_LENGTH: 32;
readonly MAX_VALUE_LENGTH: 512;
};
export declare const HTTP: {
readonly OK: 200;
readonly BAD_REQUEST: 400;
readonly UNAUTHORIZED: 401;
readonly FORBIDDEN: 403;
readonly INTERNAL_SERVER_ERROR: 500;
readonly BAD_GATEWAY: 502;
readonly GATEWAY_TIMEOUT: 504;
readonly AUTHENTICATE: "WWW-Authenticate";
readonly REALM: "Basic realm=\"WebSSH2\"";
readonly AUTH_REQUIRED: "Authentication required.";
readonly COOKIE: "basicauth";
readonly PATH: "/ssh/host/";
readonly SAMESITE_POLICY: "Strict";
readonly SESSION_SID: "webssh2_sid";
readonly CREDENTIALS_CLEARED: "Credentials cleared.";
};
export declare const TERMINAL_LIMITS: {
readonly MIN_ROWS: 1;
readonly MAX_ROWS: 9999;
readonly MIN_COLS: 1;
readonly MAX_COLS: 9999;
};
export declare const HEADERS: {
readonly CONTENT_SECURITY_POLICY: "Content-Security-Policy";
readonly X_CONTENT_TYPE_OPTIONS: "X-Content-Type-Options";
readonly X_FRAME_OPTIONS: "X-Frame-Options";
readonly X_XSS_PROTECTION: "X-XSS-Protection";
readonly REFERRER_POLICY: "Referrer-Policy";
readonly PERMISSIONS_POLICY: "Permissions-Policy";
readonly STRICT_TRANSPORT_SECURITY: "Strict-Transport-Security";
};