Go to file
2021-08-26 14:55:02 -06:00
authkeys merge 2021-06-17 17:31:15 +00:00
.gitignore feat: add reverse-proxy and session values 2021-08-26 11:45:00 -06:00
.hostkey.pub first commit 2021-05-07 11:26:48 -06:00
go.mod fix: make key names deterministic 2021-08-26 14:55:02 -06:00
go.sum fix: make key names deterministic 2021-08-26 14:55:02 -06:00
main.go fix: make key names deterministic 2021-08-26 14:55:02 -06:00
Makefile feat: add reverse-proxy and session values 2021-08-26 11:45:00 -06:00
README.md merge 2021-06-17 17:31:15 +00:00

sshfwd

This is a reverse forward service that uses SSH as the transport. It works similar to ngrok or localtunnel.me.

You run the service on a internet addressible host and ssh to it. Using ssh remote forwards (ie. ssh -R) the port on the remote host will be forwared to the configured port on your local machine.

on Remote host:

$ make genkeys  # generate the services host keys.
$ SSH_HOSTKEYS=hostkeys SSH_LISTEN=:2222 sshfwd   # run service on port 2222

on your local machine:

$ ssh -T remote.example.com -p 2222 -R 0.0.0.0:1234:localhost:3000

now if you access remote.example.com:1234 it will be the same as accessing localhost:3000

Pubkeys

if the env variable SSH_AUTHKEYS is set it will require that the client authenticates with one of the keys in the SSH_AUTHKEYS directory.

$ SSH_LISTEN=:2222 SSH_HOSTKEYS=hostkeys SSH_AUTHKEYS=authkeys sshfwd