Git Product home page Git Product logo

shellcove's Introduction

Shellcove

NOTE WIP

Overview

Shellcove is a Rust-based microservice designed to function as an SSH gateway between broswer base Terminal emulators and ssh servers. It enables shell terminals to communicate with the service using WebSockets. The service then forwards the requests to an SSH server using the SSH protocol.

Architecture

Road Map

  • Record Terminal Session
  • Resumable Sessions
  • Acts as a bridge between browser websocket connections and SSH servers
  • Supports secure and encrypted communication.
  • Easy to deploy and integrate with existing systems.
  • container image provided

Installation

  1. Clone the repository:
git clone https://github.com/talk2drys/shellcove.git
  1. Build the project:
cd shellcove
cargo build --release
  1. Run the service:
./target/release/shellcove

Configuration

Usage

  1. Start the Shellcove service:
./target/release/shellcove
  1. Connect to the WebSocket server using a shell terminal client that supports WebSocket connections.

    Example using websocat:

    websocat ws://localhost:8080

License

This project is licensed under the MIT License.

shellcove's People

Watchers

 avatar

shellcove's Issues

data chunks received out of order

when command are sent, especially long running commands, command output receives sometime are out of order, in the below example the prompt gets returned before the end of the complete output

image

but adding debugging out at the data callback section chucks are received properly

image

Add support for older key exchange algorithms

Add support for the following or some of the below key exchange algorithm

diffie-hellman-group-exchange-sha256
diffie-hellman-group-exchange-sha1
diffie-hellman-group14-sha1
diffie-hellman-group1-sha1

[2023-09-29T20:23:34Z DEBUG russh::negotiation] Could not find common kex algorithm, other side only supports Ok("diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1"), we only support [Name("curve25519-sha256"), Name("[email protected]"), Name("diffie-hellman-group14-sha256")]
[2023-09-29T20:23:34Z DEBUG russh::client] drop session
[2023-09-29T20:23:34Z TRACE mio::poll] deregistering event source from poller

Add support for ssh-rsa key

Add support for rsa keys, mostly used by older devices

2023-09-29T22:51:59.937786Z DEBUG russh::negotiation: Could not find common key algorithm, other side only supports Ok("ssh-rsa,ssh-dss"), we only support [Name("ssh-ed25519")]
2023-09-29T22:51:59.937931Z DEBUG russh::client: drop session

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.