# Shared SSH client This library ports v2's Rust SSH transport for the `ssh` and `git` CLIs. It uses standard WASI sockets for TCP and standard WASI HTTP for host-mediated authentication. It never reads a private-key file or a v2 configuration file. `Session` owns key exchange, authentication, exec channels, flow control, and packet protection. `identity::connect` obtains a public identity and signs authentication through the host API. `Session::split` supplies Git's in-process transport with a reader and a writer. `Session::execute_input` sends buffered stdin and captures both output streams and the remote exit status. Host trust uses `$HOME/.ssh/known_hosts`, including hashed names, patterns, and revocations. The protocol supports curve25519-sha256, Ed25519, AES-128-CTR, and HMAC-SHA2, including OpenSSH EtM variants. The inherited TCP defaults use a five-second connection budget and fifteen-second read and write timeouts. The integration tests in `../ssh/test.nu` and `../git/ssh-test.nu` use native sshd and a fake signing server. The fake server keeps its private keys outside the guest preopen.