5

GitHub - moul/quicssh: SSH over QUIC

 1 year ago
source link: https://github.com/moul/quicssh
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

quicssh

smilequicssh is a QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server.

Architecture

Standard SSH connection

┌───────────────────────────────────────┐             ┌───────────────────────┐
│                  bob                  │             │         wopr          │
│ ┌───────────────────────────────────┐ │             │ ┌───────────────────┐ │
│ │           ssh user@wopr           │─┼────tcp──────┼▶│       sshd        │ │
│ └───────────────────────────────────┘ │             │ └───────────────────┘ │
└───────────────────────────────────────┘             └───────────────────────┘

SSH Connection proxified with QUIC

┌───────────────────────────────────────┐             ┌───────────────────────┐
│                  bob                  │             │         wopr          │
│ ┌───────────────────────────────────┐ │             │ ┌───────────────────┐ │
│ │ssh -o ProxyCommand "quicssh client│ │             │ │       sshd        │ │
│ │     --addr %h:4545" user@wopr     │ │             │ └───────────────────┘ │
│ │                                   │ │             │           ▲           │
│ └───────────────────────────────────┘ │             │           │           │
│                   │                   │             │           │           │
│                process                │             │  tcp to localhost:22  │
│                   │                   │             │           │           │
│                   ▼                   │             │           │           │
│ ┌───────────────────────────────────┐ │             │┌─────────────────────┐│
│ │  quicssh client --addr wopr:4545  │─┼─quic (udp)──▶│   quicssh server    ││
│ └───────────────────────────────────┘ │             │└─────────────────────┘│
└───────────────────────────────────────┘             └───────────────────────┘

Usage

$ quicssh -h
NAME:
   quicssh - A new cli application

USAGE:
   quicssh [global options] command [command options] [arguments...]

VERSION:
   0.0.0

COMMANDS:
     server
     client
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)

Client

$ quicssh client -h
NAME:
   quicssh client -

USAGE:
   quicssh client [command options] [arguments...]

OPTIONS:
   --addr value  (default: "localhost:4242")
   --help, -h    show help (default: false)

Server

$ quicssh server -h
NAME:
   quicssh server -

USAGE:
   quicssh server [command options] [arguments...]

OPTIONS:
   --bind value  (default: "localhost:4242")
   --help, -h    show help (default: false)

Install

$ go get -u moul.io/quicssh

License

© 2019-2021 Manfred Touron - Apache-2.0 License


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK