cirocosta / ssh-proxy

proxying conns via ssh

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ssh-proxy
	

	an 80% copy of Concourse's SSH proxying.



WHY

	Proxying traffic through SSH is definitely not free, and it turns out
	that Concourse does that for streaming bits from one worker to another.

	This was created to isolate the proxying part so that we could gather
	some insights into how costly that is.

	At the same time, this thing is useful on its own for, for instance,
	getting a HTTP server that sits in your desktop (under a private IP
	address) exposed to the "wild interwebzz" by having a server (that sits
	on a public IP) forwarding requests down to your desktop.

		- yeah yeah, maybe not all that useful as I didn't implement any
		  of the key checking for authn hehe



USAGE

	1. create a private key

		ssh-keygen -t rsa -f ./id_rsa


	2. on `machine1`, create a server

		# listening on 2222 for SSH connections
		#
		ssh-proxy server \
			--private-key=./id_rsa \ 
			--addr=0.0.0.0:2222


	3. on `machine2`, create a "client"

		# connects to machine1:2222, sending a request for it
		# to take connections to its 1234 (i.e., `machine1:1234`),
		# forward them to the client, which is then responsible for
		# pushing down to a server listening on 8000.
		#
		ssh-proxy client \
			--addr=machine1:2222 \	# addr of the ssh server
			--local-port=8000 \
			--remote-port=1234
			

		python -m "SimpleHTTPServer"	# start a basic http server here
						# that listens on 8000


	4. get requests from the server down to the client

		curl machine1:1234


			curl --> server:1234 ---> client ---> application:8000



SHOULD I USE THIS?

	probably not.

	this is just for an experiment.



LICENSE

	Apache V2 (see ./LICENSE).

	see Concourse's license:
	- https://github.com/concourse/concourse/blob/2cc847226ee5210d30045b49bac7f4c2350990c8/LICENSE.md



About

proxying conns via ssh

License:Apache License 2.0


Languages

Language:Go 86.2%Language:Shell 6.7%Language:Dockerfile 4.2%Language:Makefile 2.9%