This program allows you to quickly and safely forward local port without configuring the infrastructure.
Features:
- Unique static subdomain based on public key fingerprint (md5).
- Standard ssh clients are supported.
- Supported http and https forwarding.
- Automatic header correction for Host, Origin.
- Supports X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto.
- SSH client.
- Public key (for authorization).
- Running r-ssh server
ssh -R [domain[+flags]:]<port>:target_domain:target_port <host>
domain - The domain to which requests will be redirected (Host
and Origin
headers will be replaced by this value if the corresponding flag is enabled) [optional].
flags - Flags change the logic of port forwarding. [optional]
Available flags:
- s - redirect https
- o - automatically fix
Origin
header (see domain)
port - Optional for r-ssh, but mandatory for ssh client. Affects only the link generated by r-ssh. By default, port 80 is not included in the link.
target_domain - Server to which requests will be redirected target_port - The port to which requests will be redirected
Forward local http://localhost:8080/ to web
ssh -R 80:localhost:8080 <host>
# forward "localhost:80" to "https://<fingeprint>.<host>/"
Forward https://example.com:443/ to web with automatic Host
correction
ssh -R example.com+s:80:example.com:443 <host>
# forward "example.com+s:80" to "https://example_com-<fingeprint>.<host>/"
Without ssl:
docker run -d --restart always --name rssh -p 22:22 -p 80:80 -e RSSH_HOST=<host> -e RSSH_HOST_KEY=/mnt/id_rsa -v /root/r-ssh/:/mnt pagran/r-ssh:latest
With ssl (wildcard certificate required):
docker run -d --restart always --name rssh -p 22:22 -p 80:80 -p 443:443 -e RSSH_HOST=<host> -e RSSH_HOST_KEY=/mnt/id_rsa -e RSSH_CERT_FILE=/mnt/<host>.cer -e RSSH_KEY_FILE=/mnt/<host>.key -v /root/.acme.sh/<host>/:/mnt pagran/r-ssh:latest