• Stars
    star
    5,180
  • Rank 7,993 (Top 0.2 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 10 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Chat over SSH.

Build Status GoDoc Downloads Bountysource

ssh-chat

Custom SSH server written in Go. Instead of a shell, you get a chat prompt.

Demo

Join the party:

$ ssh ssh.chat

Please abide by our project's Code of Conduct while participating in chat.

The host's public key is ssh.chat ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKPrQofxXqoz2y9A7NFkkENt6iW8/mvpfes3RY/41Oyt and the fingerprint is SHA256:yoqMXkCysMTBsvhu2yRoMUl+EmZKlvkN+ZKmL3115xU (as of 2021-10-13).

If you see something different, you might be MITM'd.

(Apologies if the server is down, try again shortly.)

Downloading a release

Recent releases include builds for MacOS (darwin/amd64) and Linux (386, amd64, and ARM6 for your RaspberryPi).

Grab the latest binary release here.

Play around with it. Additional deploy examples are here.

Compiling / Developing

Most people just want the latest binary release. If you're sure you want to compile it from source, read on:

You can compile ssh-chat by using make build. The resulting binary is portable and can be run on any system with a similar OS and CPU arch. Go 1.8 or higher is required to compile.

If you're developing on this repo, there is a handy Makefile that should set things up with make run.

Additionally, make debug runs the server with an http pprof server. This allows you to open http://localhost:6060/debug/pprof/ and view profiling data. See net/http/pprof for more information about pprof.

Quick Start

Usage:
  ssh-chat [OPTIONS]

Application Options:
  -v, --verbose    Show verbose logging.
      --version    Print version and exit.
  -i, --identity=  Private key to identify server with. (default: ~/.ssh/id_rsa)
      --bind=      Host and port to listen on. (default: 0.0.0.0:2022)
      --admin=     File of public keys who are admins.
      --whitelist= Optional file of public keys who are allowed to connect.
      --motd=      Optional Message of the Day file.
      --log=       Write chat log to this file.
      --pprof=     Enable pprof http server for profiling.

Help Options:
  -h, --help       Show this help message

After doing go get github.com/shazow/ssh-chat/... on this repo, you should be able to run a command like:

$ ssh-chat --verbose --bind ":22" --identity ~/.ssh/id_dsa

To bind on port 22, you'll need to make sure it's free (move any other ssh daemons to another port) and run ssh-chat as root (or with sudo).

Frequently Asked Questions

The FAQs can be found on the project's Wiki page. Feel free to submit more questions to be answered and added to the page.

License

MIT

More Repositories

1

whatsabi

Extract the ABI (and resolve proxies, and get other metadata) from Ethereum bytecode, even without source code.
TypeScript
1,015
star
2

gohttplib

Go buildmodes prototype: Expose net/http.Server as a library with C bindings
Go
209
star
3

workerpool

Python multithreaded job distribution module.
Python
152
star
4

unstdlib.py

Unstandard Python library of useful and highly-reusable functions.
Python
146
star
5

ethspam

Generate realistic Ethereum JSONRPC queries, useful for benchmarking and testing.
Go
89
star
6

apiclient

Framework for making good Python API client libraries using urllib3.
Python
87
star
7

foundry.nix

Nix overlay for gakonst/foundry (including forge and cast)
Nix
54
star
8

callthis

Build a transaction, send a link for someone else to execute it.
Svelte
45
star
9

dotfiles

Some of my . files.
Vim Script
44
star
10

composer

Static website generator, structure/syntax-agnostic.
Python
44
star
11

communal

WIP: Automating doom-scrolling
Go
44
star
12

go-selfcompile

Build self-recompiling Go binaries
Go
39
star
13

nixfiles

Some of my .nix files
Nix
32
star
14

grid-benchmark.js

Benchmark of Javascript grid datastructures
JavaScript
29
star
15

shazow.net

CSS
26
star
16

go-irckit

Minimal IRC server (and maybe client) toolkit for Go.
Go
24
star
17

briefmetrics

Briefmetrics emails you simple overviews of your website's Google Analytics.
Python
23
star
18

sqlalchemygrate

Silly (but effective) database schema and data migration framework using SQLAlchemy.
Python
23
star
19

btc-crawl

Bitcoin node network crawler (written in Go).
Go
23
star
20

colorblendy

Blend colors with different modes like multiply, overlay, dodge.
JavaScript
22
star
21

learning-opengl

My notes from learning OpenGL
Shell
21
star
22

go-sshkit

Toolkit for building SSH servers and clients in Go.
Go
21
star
23

colorlib

Collection of color manipulation functions in Javascript.
JavaScript
16
star
24

neobnc

Multi-tenant IRC bouncer (BNC), written in Go.
Go
13
star
25

ssh-hammer

SSH load testing tool.
Go
13
star
26

liquid

Arbitrage bot to provide liquidity between two Bitcoin exchanges.
JavaScript
12
star
27

gameblocks.js

Game engine framework for JavaScript, used to make LineRage.
JavaScript
12
star
28

relay.js

Host a JavaScript server in your browser.
JavaScript
11
star
29

go-diff

Library for generating Git-style diff patchsets in Go.
Go
9
star
30

memoizer

Golang memoizer interface for caching your function calls.
Go
9
star
31

keyxor

Keyxor SΓΆze, a πŸ”‘ splitting and merging tool for secret sharing
Go
8
star
32

bashbnc

Single-user IRC bouncer (BNC), written in Bash.
Shell
8
star
33

flashbots-boilerplate

Messing around with Flashbots and Deno
TypeScript
7
star
34

everything

My writing about everything.
7
star
35

go-webrtc-server

http middleware for auto-negotiating a server-to-client WebRTC connection.
Go
7
star
36

turnip

Turnip Task Scheduler: Like celery but tastier.
Python
6
star
37

wideslide

jQuery plugin for a landscape-scrolling image slideshow.
JavaScript
6
star
38

stripe-copy

Copy Stripe objects like subscriptions and plans between accounts.
Go
6
star
39

clog

Command Log. Or Captain's Log.
Python
6
star
40

go-gameblocks

Game engine toolkit for Go.
Go
5
star
41

wedomainsearch

Realtime collaborative domain search
CSS
5
star
42

tweography

Your tweets on a map.
JavaScript
5
star
43

tbd

Name not determined yet.
4
star
44

clicker.go

An incremental game about Go programming.
Go
4
star
45

dockerfiles

A shipyard for my dockers.
Shell
4
star
46

twebbie

Javascript Twitter client with group support like TweetDeck.
JavaScript
4
star
47

iwascaught.com

JavaScript
3
star
48

0xBozos

EVM programming puzzle game.
Nix
3
star
49

tweepsect

Twitter stalkers exposed.
JavaScript
3
star
50

coinhooks

A webhooks service for Bitcoin ecommerce.
Python
3
star
51

data

Dump of data generated by me.
Python
3
star
52

rnges.us

Instant collaborative RNG, send a link to your friend and off you go
3
star
53

302found

Simple redireciton web service built on the Google App Engine platform.
Python
3
star
54

linerage3d

experimental: Remake of LineRage in 3D using Go
Go
3
star
55

pyramid_scaffolds_decoupled

Decouple web-specific code from the models, libraries, and apis, so that the components can be used independently.
Python
3
star
56

garlic

Garlic is a language agnostic task scheduler. [DRAFT]
2
star
57

eip-sighashes

Ethereum 4-byte signature hashes extracted from EIPs
Nix
2
star
58

ssh-chat-relay

Relay your ssh-chat server to other protocols, like websocket.
Go
2
star
59

go-multierror

Another MultiError implementation for Go.
Go
2
star
60

unstdlib.js

Unstandard JavaScript library of useful and highly-reusable functions.
JavaScript
2
star
61

phantomd3

Render d3.js charts inside PhantomJS
JavaScript
2
star
62

splitcost

Simple AngularJS to account shared expenses for a trip.
JavaScript
2
star
63

176

Repo number one hundred and seventy six
1
star
64

shazow.github.com

Me
1
star
65

ssh-blog

Why would anyone do this, you might ask yourself. You'd be correct to ask yourself that.
1
star
66

fwdup

Git-based backups.
Shell
1
star
67

linerage

You're a line, don't hit each other. (Pushed for posterity)
JavaScript
1
star
68

sometalk-test

Messing around for a talk.
Python
1
star
69

learning-rust

Playing around with some Rust code.
Rust
1
star
70

instantlyat

Old project I worked on with @dsa
Python
1
star
71

go-ipfs-extracted

Extracted packages from go-ipfs
Go
1
star
72

viprpc

WIP: Prototyping a web3 RPC MITM for capturing and analyzing some kinds of transactions
Go
1
star
73

contract-explorer

Like Internet Explorer, but for Contracts.
Svelte
1
star
74

ens-managed-registry

Collection of ENS components for operating a managed registry (subdomains controlled by an oracle).
Solidity
1
star
75

salt-states

My lovely salty salt states.
Scheme
1
star
76

chessviz

Visualizing chess games with three.js
JavaScript
1
star
77

cosm

WIP: Embedded worlds
1
star
78

rateio

Ratelimiting for io-style interfaces in Go.
Go
1
star