Files
sausage/userland/ssh-client/README.md
T

18 lines
1.1 KiB
Markdown

# 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.