Server and client SSH library. See the two example crates
thrussh_client and
thrussh_client on
crates.io.
The source code for this crates and the examples is available
online, just follow the instructions.
This library will never do much more than handling the SSH
protocol. In particular, it does not run a main loop, does not
call external processes, and does not do its own crypto.
If you want to implement an SSH server, create a type that
implements the Server
trait, create a server::Config
, and then for each
new connection, create a server session using let s = ServerSession::new()
. Then, every time new packets are available,
read as many packets as possible using ServerSession::read(..)
,
and then write the answer using ServerSession::write(..)
.
Clients work almost in the same way, except if you want to provide
a command line interface, which needs its own event loop. See the
thrussh_client crate for an example.