crystal_ssh

Version, currently master branch1 version
  • master branchlatestDec 11, 2016

github.com/bararchy/crystal_ssh

libssh (server side) binding in Crystal

11 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  crystal_ssh:
    github: bararchy/crystal_ssh
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
0.20.0+23
License
MIT
Author
bararchy <bar.hofesh@safe-t.com>

Dependencies

This version declares no dependencies.

README

# crystal_ssh

This project aims to fully implement the libssh bindings in Crystal languge.
Allowing programmers to spin up ssh servers and clients

## Installation

Add this to your application's `shard.yml`:

```yaml
dependencies:
  crystal_ssh:
    github: bararchy/crystal_ssh
```

## Usage

```crystal
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 

## Development

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 :)  

## Contributing

1. Fork it ( https://github.com/bararchy/crystal_ssh/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request

## Contributors

- [bararchy](https://github.com/bararchy) - creator, maintainer