torrust_tracker_deployer_lib/adapters/ssh/mod.rs
1//! SSH wrapper module for secure remote operations
2//!
3//! This module provides comprehensive SSH functionality for secure remote command
4//! execution and connectivity management. It includes credential management,
5//! connection configuration, and client implementation with proper error handling.
6//!
7//! ## Module Components
8//!
9//! - `client` - SSH client implementation for remote command execution
10//! - `config` - SSH configuration and management
11//! - `credentials` - SSH authentication credentials and key management
12//! - `error` - SSH error types and implementations
13//! - `key_inspector` - Best-effort detection of passphrase-protected private keys
14//! - `public_key` - SSH public key representation and validation
15//! - `service_checker` - SSH service availability testing without authentication
16//!
17//! ## Key Features
18//!
19//! - Private key authentication with configurable credentials
20//! - Connection timeout and retry mechanisms
21//! - Secure remote command execution with error handling
22//! - SSH service availability checking for connectivity testing
23//! - Integration with deployment automation workflows
24//!
25//! The SSH wrapper is designed for automated deployment scenarios where
26//! secure remote access is essential for configuration and management tasks.
27
28pub mod client;
29pub mod config;
30pub mod credentials;
31pub mod error;
32pub mod key_inspector;
33pub mod public_key;
34pub mod service_checker;
35
36pub use client::SshClient;
37pub use config::{
38 SshConfig, SshConnectionConfig, DEFAULT_CONNECT_TIMEOUT_SECS, DEFAULT_MAX_RETRY_ATTEMPTS,
39 DEFAULT_RETRY_INTERVAL_SECS, DEFAULT_RETRY_LOG_FREQUENCY, DEFAULT_SSH_PORT,
40};
41pub use credentials::SshCredentials;
42pub use error::SshError;
43pub use key_inspector::is_passphrase_protected;
44pub use public_key::SshPublicKey;
45pub use service_checker::SshServiceChecker;