Struct SSHClient

Source
pub struct SSHClient<'a> { /* private fields */ }
Expand description

An async SSH client instance

The run() method runs the session to completion. progress() must be polled, and responses given to the events provided.

Once authentication has completed (progress() returns CliEvent::Authenticated), the application may open remote channels with open_session_pty() etc.

This is async executor agnostic.

Implementations§

Source§

impl<'a> SSHClient<'a>

Source

pub fn new(inbuf: &'a mut [u8], outbuf: &'a mut [u8]) -> Self

Source

pub async fn run( &self, rsock: &mut impl Read, wsock: &mut impl Write, ) -> Result<()>

Runs the session to completion.

rsock and wsock are the SSH network channel (TCP port 22 or equivalent).

Source

pub async fn progress<'g, 'f>( &'g self, ph: &'f mut ProgressHolder<'g, 'a, Client>, ) -> Result<CliEvent<'f, 'a>>

Returns an event from the SSH session.

Note that on return ProgressHolder holds a mutex over the session, so other calls to SSHClient may block until the ProgressHolder is dropped.

Source

pub async fn open_session_nopty(&self) -> Result<(ChanInOut<'_>, ChanIn<'_>)>

Source

pub async fn open_session_pty(&self) -> Result<ChanInOut<'_>>

Auto Trait Implementations§

§

impl<'a> !Freeze for SSHClient<'a>

§

impl<'a> !RefUnwindSafe for SSHClient<'a>

§

impl<'a> Send for SSHClient<'a>

§

impl<'a> !Sync for SSHClient<'a>

§

impl<'a> Unpin for SSHClient<'a>

§

impl<'a> !UnwindSafe for SSHClient<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.