This project aims to fully implement the libssh bindings in Crystal languge. Allowing programmers to spin up ssh servers and clients
Add this to your application's shard.yml
:
dependencies:
crystal_ssh:
github: bararchy/crystal_ssh
require "crystal_ssh"
ssh = SSHServer.new(
username: "foo",
password: "bar",
rsakey: "spec/foo.key",
timeout: "360",
port: "2020",
banner: "Welcome to Crystal SSH :)",
listen_address: "0.0.0.0",
)
# Without a spawn this will block
# When client side is ready the check would be to see if the server responds
ssh.listen
You can always look at the sepcs to see examples
The C sources and docs can be found here: http://api.libssh.org/master/group__libssh.html
I got the project started in Ruby here: https://github.com/bararchy/SSHSocket if another referance helps
TODO:
- Adding full authentication for user & pass
- Adding more hooks for events
- Adding the shell integration
- More stuff :)
- Fork it ( https://github.com/bararchy/crystal_ssh/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- bararchy - creator, maintainer