Pure-rust SSH 2.0 Client

Example: Initiating a fetch from github

```rust use std::net::TcpStream; use coolssh::{createed25519keypair, dumped25519pk_openssh, Connection};

let hexkeypair: String = createed25519keypair(); println!("Key Pair (private): {}", hexkeypair);

let githubaccountid = "john.doe@gmail.com"; let opensshencodedpubkey = dumped25519pkopenssh(&hexkeypair, githubaccountid); println!("OpenSSH-Encoded Public Key {}", opensshencodedpubkey); // Add the public key to authorized_keys on your server // -> https://github.com/settings/keys

let stream = TcpStream::connect("github.com:22").unwrap(); let mut conn = Connection::new(stream, ("git", hexkeypair.asstr()).into()).unwrap();

// set appropriate read timeout (preferably after authentication): conn.mutatestream(|stream| { let timeout = std::time::Duration::frommillis(200); stream.setreadtimeout(Some(timeout)).unwrap() });

let env = []; let run = conn.run("git-upload-pack rust-lang/rust.git", &env).unwrap(); ```

Supported SSH Algorithms

Future improvements

Feel free to submit pull request for these.