pub struct ClienteSsh {
pub sessao: Handle<ManipuladorCliente>,
/* private fields */
}Available on crate feature
ssh-real only.Expand description
Cliente SSH ativo com sessão autenticada.
Fields§
§sessao: Handle<ManipuladorCliente>Sessão SSH autenticada para operações de baixo nível.
Implementations§
Source§impl ClienteSsh
impl ClienteSsh
Sourcepub async fn conectar(cfg: ConfiguracaoConexao) -> ResultadoSshCli<Self>
pub async fn conectar(cfg: ConfiguracaoConexao) -> ResultadoSshCli<Self>
Conecta e autentica. Todo o fluxo (TCP + handshake + auth) respeita
o timeout_ms da configuração.
§Erros
ErroSshCli::ArgumentoInvalidose a configuração for inválida.ErroSshCli::TimeoutSshse exceder o timeout total.ErroSshCli::ConexaoFalhouem falhas TCP/handshake.ErroSshCli::AutenticacaoFalhouse o servidor rejeitar a senha.
Sourcepub async fn executar_comando(
&mut self,
comando: &str,
max_chars: usize,
) -> ResultadoSshCli<SaidaExecucao>
pub async fn executar_comando( &mut self, comando: &str, max_chars: usize, ) -> ResultadoSshCli<SaidaExecucao>
Executa um comando shell remoto e captura stdout/stderr em paralelo.
Trunca cada stream em max_chars codepoints UTF-8. Respeita o
timeout_ms da configuração para a execução inteira.
§Erros
ErroSshCli::CanalFalhouem falha ao abrir canal ou enviarexec.ErroSshCli::TimeoutSshse exceder o timeout.
Sourcepub async fn upload(
&mut self,
local: &Path,
remote: &Path,
) -> ResultadoSshCli<TransferenciaResultado>
pub async fn upload( &mut self, local: &Path, remote: &Path, ) -> ResultadoSshCli<TransferenciaResultado>
Upload de arquivo local para remote via SCP.
§Erros
ErroSshCli::ArquivoNaoEncontradose o arquivo local não existir.ErroSshCli::CanalFalhouem falha ao abrir canal SCP.ErroSshCli::TimeoutSshse exceder o timeout.
Sourcepub async fn download(
&mut self,
remote: &Path,
local: &Path,
) -> ResultadoSshCli<TransferenciaResultado>
pub async fn download( &mut self, remote: &Path, local: &Path, ) -> ResultadoSshCli<TransferenciaResultado>
Download de arquivo remote para local via SCP.
§Erros
ErroSshCli::Iose não conseguir escrever o arquivo local.ErroSshCli::CanalFalhouem falha ao abrir canal SCP.ErroSshCli::TimeoutSshse exceder o timeout.
Sourcepub async fn desconectar(&self) -> ResultadoSshCli<()>
pub async fn desconectar(&self) -> ResultadoSshCli<()>
Encerra a sessão SSH de forma limpa.
§Erros
Propaga falha se disconnect retornar erro do transporte.
Sourcepub async fn abrir_canal_tunel(
&self,
host_remoto: &str,
porta_remota: u16,
endereco_origem: &str,
porta_origem: u16,
) -> ResultadoSshCli<Box<dyn CanalTunel>>
pub async fn abrir_canal_tunel( &self, host_remoto: &str, porta_remota: u16, endereco_origem: &str, porta_origem: u16, ) -> ResultadoSshCli<Box<dyn CanalTunel>>
Abre canal direct-tcpip para forwarding SSH.
Trait Implementations§
Source§impl ClienteSshTrait for ClienteSsh
impl ClienteSshTrait for ClienteSsh
Source§fn conectar<'async_trait>(
cfg: ConfiguracaoConexao,
) -> Pin<Box<dyn Future<Output = Result<Box<Self>, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
fn conectar<'async_trait>(
cfg: ConfiguracaoConexao,
) -> Pin<Box<dyn Future<Output = Result<Box<Self>, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
Conecta a um servidor SSH e autentica com as credenciais fornecidas.
Source§fn executar_comando<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cmd: &'life1 str,
max_chars: usize,
) -> Pin<Box<dyn Future<Output = Result<SaidaExecucao, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn executar_comando<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cmd: &'life1 str,
max_chars: usize,
) -> Pin<Box<dyn Future<Output = Result<SaidaExecucao, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Executa um comando shell remoto e retorna a saída capturada.
Source§fn upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
local: &'life1 Path,
remote: &'life2 Path,
) -> Pin<Box<dyn Future<Output = Result<TransferenciaResultado, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
local: &'life1 Path,
remote: &'life2 Path,
) -> Pin<Box<dyn Future<Output = Result<TransferenciaResultado, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Faz upload de um arquivo local para o servidor remoto via SCP.
Source§fn download<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
remote: &'life1 Path,
local: &'life2 Path,
) -> Pin<Box<dyn Future<Output = Result<TransferenciaResultado, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn download<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
remote: &'life1 Path,
local: &'life2 Path,
) -> Pin<Box<dyn Future<Output = Result<TransferenciaResultado, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Faz download de um arquivo remoto para o sistema local via SCP.
Source§fn abrir_canal_tunel<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
host_remoto: &'life1 str,
porta_remota: u16,
endereco_origem: &'life2 str,
porta_origem: u16,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn CanalTunel>, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn abrir_canal_tunel<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
host_remoto: &'life1 str,
porta_remota: u16,
endereco_origem: &'life2 str,
porta_origem: u16,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn CanalTunel>, ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Abre um canal
direct-tcpip para forwarding de tunnel.Source§fn desconectar<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn desconectar<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ErroSshCli>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Encerra a conexão SSH de forma limpa.
Auto Trait Implementations§
impl Freeze for ClienteSsh
impl !RefUnwindSafe for ClienteSsh
impl Send for ClienteSsh
impl Sync for ClienteSsh
impl Unpin for ClienteSsh
impl UnsafeUnpin for ClienteSsh
impl !UnwindSafe for ClienteSsh
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
Mutably borrows from an owned value. Read more