LibSSH.jl
This package provides a high-level API and low-level bindings to libssh. You can use it to programmatically create an SSH connection to a remote server and do things like:
- Execute remote commands
- Set up port forwarding
- Create security holes (better be careful lol)
The upstream libssh library has implementations for both a client and server, but this package (currently) only attempts to provide a high-level client API. A demo SSH server is available, but it's only intended to be used for tests.
These docs were generated against this upstream libssh version:
julia> import LibSSH as ssh
julia> ssh.lib_version()
v"0.11.1"
LibSSH.jl is still under heavy development and may contain bugs. We strongly recommend testing your code as much as possible. If you have found a bug, please report it.
Installation
LibSSH.jl is available in the general registry:
pkg> add LibSSH
Limitations
- GSSAPI support isn't available on all platforms (see
Gssapi.isavailable
). - Many features don't have high-level wrappers (see Contributing).
FAQ
Can I use this to create an SSH server?
Technically yes, but you almost certainly shouldn't because authentication and authorization is proper hard and there's lots of ways it could go wrong.
Can I use this to create an SSH client?
Yes. But make sure you test it appropriately with the Demo server.
Why isn't <beloved-feature> supported in the high-level API?
The author is fabulously lazy and hasn't bothered (but will accept PRs to do so <3).