thrussh_client 0.4.0

A high-level SSH client built with Thrussh and Mio.
extern crate thrussh_client;
extern crate env_logger;
use thrussh_client::*;
use std::io::Write;

fn main() {
    env_logger::init().unwrap();
    let mut client = thrussh_client::SSHClient::new("localhost", 22).unwrap();
    let key = thrussh_client::load_secret_key("/home/pe/.ssh/id_ed25519").unwrap();
    client.session().set_auth_public_key("pe".to_string(), key);
    client.authenticate().unwrap();

    struct C;
    impl thrussh_client::Handler for C {
        fn data(&mut self,
                _: u32,
                _: Option<u32>,
                data: &[u8],
                _: &mut Session)
                -> Result<(), Error> {
            try!(std::io::stdout().write(data));
            Ok(())
        }
    }
    let mut c = C;
    let channel = client.session().channel_open_session().unwrap();
    client.wait_channel_open(&mut c, channel).unwrap();
    client.session().exec(channel, false, "ls -l");
    client.session().eof(channel);
    client.wait_channel_close(&mut c, channel).unwrap();
}