pub struct SshConfig {
pub credentials: SshCredentials,
pub socket_addr: SocketAddr,
pub connection_config: SshConnectionConfig,
}Expand description
SSH connection configuration for a specific remote instance.
Contains both the SSH credentials and the target host socket address, representing everything needed to establish an SSH connection.
Fields§
§credentials: SshCredentialsSSH authentication credentials.
socket_addr: SocketAddrSocket address (IP address and port) of the target host for SSH connections.
This contains both the IP address and port number of the remote instance that the SSH client will connect to.
connection_config: SshConnectionConfigSSH connection behavior configuration (timeouts, retries, logging).
Implementations§
Source§impl SshConfig
impl SshConfig
Sourcepub fn new(credentials: SshCredentials, ssh_socket_addr: SocketAddr) -> Self
pub fn new(credentials: SshCredentials, ssh_socket_addr: SocketAddr) -> Self
Creates a new SSH connection configuration with default connection settings.
Uses SshConnectionConfig::default() for connection behavior parameters.
use torrust_tracker_deployer_lib::adapters::ssh::{SshCredentials, SshConfig};
let credentials = SshCredentials::new(
PathBuf::from("/home/user/.ssh/deploy_key"),
PathBuf::from("/home/user/.ssh/deploy_key.pub"),
Username::new("ubuntu").unwrap(),
);
let socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(192, 168, 1, 100)), 22);
let config = SshConfig::new(
credentials,
socket_addr,
);Sourcepub fn with_connection_config(
credentials: SshCredentials,
ssh_socket_addr: SocketAddr,
connection_config: SshConnectionConfig,
) -> Self
pub fn with_connection_config( credentials: SshCredentials, ssh_socket_addr: SocketAddr, connection_config: SshConnectionConfig, ) -> Self
Creates a new SSH connection configuration with custom connection settings.
Use this constructor when you need to customize connection behavior (timeouts, retries, logging) for specific scenarios.
use torrust_tracker_deployer_lib::adapters::ssh::{SshCredentials, SshConfig, SshConnectionConfig};
let credentials = SshCredentials::new(
PathBuf::from("/home/user/.ssh/deploy_key"),
PathBuf::from("/home/user/.ssh/deploy_key.pub"),
Username::new("ubuntu").unwrap(),
);
let socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(192, 168, 1, 100)), 22);
// Custom configuration for fast testing
let connection_config = SshConnectionConfig::new(1, 5, 1, 2);
let config = SshConfig::with_connection_config(
credentials,
socket_addr,
connection_config,
);Sourcepub fn with_default_port(credentials: SshCredentials, host_ip: IpAddr) -> Self
pub fn with_default_port(credentials: SshCredentials, host_ip: IpAddr) -> Self
Creates a new SSH connection configuration with the default port (22).
This is a convenience method for when you want to use the standard SSH port.
use torrust_tracker_deployer_lib::adapters::ssh::{SshCredentials, SshConfig};
let credentials = SshCredentials::new(
PathBuf::from("/home/user/.ssh/deploy_key"),
PathBuf::from("/home/user/.ssh/deploy_key.pub"),
Username::new("ubuntu").unwrap(),
);
let config = SshConfig::with_default_port(
credentials,
IpAddr::V4(Ipv4Addr::new(192, 168, 1, 100)),
);Sourcepub fn ssh_priv_key_path(&self) -> &PathBuf
pub fn ssh_priv_key_path(&self) -> &PathBuf
Access the SSH private key path.
Sourcepub fn ssh_pub_key_path(&self) -> &PathBuf
pub fn ssh_pub_key_path(&self) -> &PathBuf
Access the SSH public key path.
Sourcepub fn ssh_username(&self) -> &str
pub fn ssh_username(&self) -> &str
Access the SSH username.
Sourcepub fn socket_addr(&self) -> SocketAddr
pub fn socket_addr(&self) -> SocketAddr
Access the socket address.
Sourcepub fn connection_timeout_secs(&self) -> u32
pub fn connection_timeout_secs(&self) -> u32
Access the connection timeout in seconds.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SshConfig
impl RefUnwindSafe for SshConfig
impl Send for SshConfig
impl Sync for SshConfig
impl Unpin for SshConfig
impl UnsafeUnpin for SshConfig
impl UnwindSafe for SshConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request