ssh-rs 0.5.0

In addition to encryption library, pure RUST implementation of SSH-2.0 client protocol
Documentation
mod tests {
    use paste::paste;

    use std::env;

    macro_rules! env_getter {
        ($field:ident, $default: expr) => {
            paste! {
                pub fn [<get_ $field>]() -> String {
                    env::var("SSH_RS_TEST_".to_owned() + stringify!([<$field:upper>])).unwrap_or($default.to_owned())
                }
            }
        };
    }
    env_getter!(username, "ubuntu");
    env_getter!(passwd, "password");
    env_getter!(server, "127.0.0.1:22");
    env_getter!(pem_rsa, "./rsa_old");
    env_getter!(openssh_rsa, "./rsa_new");
    env_getter!(ed25519, "./ed25519");

    #[test]
    fn test_password() {
        let session = ssh::create_session()
            .username(&get_username())
            .password(&get_passwd())
            .connect(get_server())
            .unwrap()
            .run_local();
        session.close();
    }

    #[test]
    fn test_password_backend() {
        let session = ssh::create_session()
            .username(&get_username())
            .password(&get_passwd())
            .connect(get_server())
            .unwrap()
            .run_backend();
        session.close();
    }

    #[test]
    fn test_rsa_old() {
        let session = ssh::create_session()
            .username(&get_username())
            .private_key_path(get_pem_rsa())
            .connect(get_server())
            .unwrap()
            .run_local();
        session.close();
    }

    #[test]
    fn test_rsa_new() {
        let session = ssh::create_session()
            .username(&get_username())
            .private_key_path(get_openssh_rsa())
            .connect(get_server())
            .unwrap()
            .run_local();
        session.close();
    }

    #[test]
    fn test_ed25519() {
        let session = ssh::create_session()
            .username(&get_username())
            .private_key_path(get_ed25519())
            .connect(get_server())
            .unwrap()
            .run_local();
        session.close();
    }

    #[test]
    fn test_pubkey_fallback() {
        let session = ssh::create_session()
            .username(&get_username())
            .password(&get_passwd())
            .private_key_path("")
            .connect(get_server())
            .unwrap()
            .run_local();
        session.close();
    }
}