{"repo":"tg123/sshpiper","free":true,"listed":false,"github":"https://github.com/tg123/sshpiper","clone":"git clone https://github.com/tg123/sshpiper.git","description":"The missing reverse proxy for ssh scp","language":"Go","stars":1296,"topics":["ssh","ssh-connection","reverse-proxy","two-factor-authentication","auditing","google-authenticator","azuread","scp","golang","bastion"],"license":"MIT","category":"networking-infra","readme_excerpt":"sshpiper 🖇 sshpiper is the reverse proxy for sshd. all protocols, including ssh, scp, port forwarding, running on top of ssh are supported. Note: this is v1 version, checkout legacy v0 here Overview and Terminology downstream : the client side, typically an ssh client. upstream : the server side, typically an ssh server. plugin : handles the routing from downstream to upstream . The plugin is also responsible for mapping authentication methods to the upstream server. For example, the downstream may use password authentication, but the upstream server may receive public key authentication mapped by sshpiper . additional challenge : some plugins will not only perform routing but also add additional challenges to SSH authentication for the upstream server. For example, the downstream may be asked for two-factor authentication provided by the plugin . Quick start Build Run simple demo start dummy sshd server start sshpiperd with fixed plugin targeting the dummy sshd server test ssh connection (password: pass ) ➕ math before login? Here illustrates the example of additional challenge before the fixed plugin. More examples For Docker Compose demos (including username routing and Lua publickey git routing), see examples/. Admin UI ( sshpiperd-webadmin ) sshpiperd can optionally expose a small admin gRPC API that lets external tools list live SSH sessions, view their terminal output in real time, and kill them. This API is off by default and is enabled by passing a non-zero --admin-","default_branch":null,"files":null,"tree":[],"storefront":"/r/tg123","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tg123/sshpiper/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}