Just wanted to inform everyone that I have a ssh client that I’m pretty happy about - it’s called librarian, and it improves on sshex in a few ways
1 - the functions are fairly well-typed
2 - it provides fetch/3 and send/4 which are implementations of the SCP protocol.
3 - uses elixir streams and collectible under the hood so it’s composable
4 - it provides ability to defer configuration settings to ~/.ssh/config
5 - there’s an
identity: connect option which lets you use a pem file.
It’s still early so there are probably some bugs that need to be worked out, and since I’m working on a linux box, not having a mac or windows to test on is tough, so as usual extra eyes and suggestions are greatly welcome
version 0.1.5 Update:
Lets you use
tty: true (it’s pretty fun to log into an iex> shell and do
SSH.run(conn, "cmatrix", tty: true)
tentative environment variable support (but unfortunately erlang’s SSH client library is broken!)
updated, reflecting API changes in the
:ssh app provided by OTP/23. Should continue to be compatible with OTP/20ish-22.
Librarian updated to 0.2.0, with support for sending File.Stream (and streams of file streams) to a librarian SCP stream. This means you can do a streaming SCP file send without loading the entire binary into memory (useful for VERY large files, like > 1GB)