{"id":22514534,"url":"https://github.com/xide/rssh","last_synced_at":"2025-10-04T13:59:51.088Z","repository":{"id":43053352,"uuid":"166860041","full_name":"Xide/rssh","owner":"Xide","description":"Reverse SSH gateway to connect to your hosts on private networks. ","archived":false,"fork":false,"pushed_at":"2023-12-16T08:09:35.000Z","size":186,"stargazers_count":3,"open_issues_count":5,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T11:22:49.473Z","etag":null,"topics":["agent","gateway","reverse","ssh"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-01-21T18:22:45.000Z","updated_at":"2022-03-28T08:43:57.000Z","dependencies_parsed_at":"2023-12-16T09:27:27.412Z","dependency_job_id":"adb9db36-6d98-4f74-b7fa-c6b2c2cde43a","html_url":"https://github.com/Xide/rssh","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Xide/rssh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xide%2Frssh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xide%2Frssh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xide%2Frssh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xide%2Frssh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xide","download_url":"https://codeload.github.com/Xide/rssh/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xide%2Frssh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278322145,"owners_count":25967874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","gateway","reverse","ssh"],"created_at":"2024-12-07T03:18:30.510Z","updated_at":"2025-10-04T13:59:51.060Z","avatar_url":"https://github.com/Xide.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RSSH\n\nReverse SSH gateway. SSH into any host in a private network by installing an agent\nthat will maintain a reverse SSH session on a public server.\n\n![diagram](./docs/diagram.png)\n\n## Quickstart\n\n0. Start the RSSH API \u0026 Gatekeeper\n\n```sh\ngit clone https://github.com/Xide/rssh.git\ncd rssh\ndocker-compose up --build\n```\n\n1. Register your subdomain\n```sh\ngo build\n\n# baguette.localhost is the default specified in `.rssh.yml`\n# It will register 127.0.0.1:22 by default. If\n# you wish to expose another host, you can use\n# the `--host` and `--port` arguments\n./rssh agent register -d subdomain.baguette.localhost\n\n\u003e\u003e 2019-02-10T03:39:43+01:00 INF Register new endpoint Host=127.0.0.1 Port=22 domain=subdomain.baguette.localhost\n\u003e\u003e 2019-02-10T03:39:43+01:00 INF Persisted credentials to disk. domain=subdomain.baguette.localhost\n\n./rssh agent ls\n\n\u003e\u003e |-----------------------------------------------------------------------------|\n\u003e\u003e | Domain                               | UID                                  |\n\u003e\u003e |-----------------------------------------------------------------------------|\n\u003e\u003e | subdomain.baguette.localhost         | a6ea341f-9b6d-413f-82be-da0ba214c831 |\n\u003e\u003e |-----------------------------------------------------------------------------|\n\n# Start to expose all the registered domains so far\n\n./rssh agent\n\n\u003e\u003e 2019-02-10T03:48:11+01:00 INF Starting RSSH agent. root-dir=/home/billy/.rssh\n2019-02-10T03:48:11+01:00 INF Finished hosts import. hosts_count=1\n\u003e\u003e 2019-02-10T03:48:11+01:00 INF Established forwarding. domain=subdomain.baguette.localhost host=127.0.0.1 port=22\n```\n\n\n2. Connect through RSSH\n```sh\ncat \u003e\u003e ~/.ssh/config \u003c\u003c EOF\nHost *.baguette.localhost\n    ProxyCommand ssh -p 2223 127.0.0.1 %h\n\nEOF\n\nssh subdomain.baguette.localhost\n```\n\n\n3. Cleanup\n```sh\n\n# Remove subdomain identity from agent known hosts\n./rssh agent rm subdomain.baguette.localhost\n\n\u003e\u003e 2019-02-11T15:56:31+01:00 INF Identity removed\n\n# Two down to force volumes deletion\ndocker-compose down; docker-compose down;\n```\n\n## Configuration\n\nSee `.rssh.yml`\n\n### Environment variables\n\nYou can use override any default and configuration sourced variable with the environment.\nAll environment variables are prefixed with `RSSH_`, and their name is constructed by taking\nthe capitalized dot separated path of your variable in `.rssh.yml`.\n(e.g: `gatekeeper.ssh_port_range` =\u003e `RSSH_GATEKEEPER_SSH_PORT_RANGE`)\n\n## TODO\n\n*Agent*:\n\n- [x] ~~Reconnect on hangup~~\n- [x] ~~Runtime config synchronization~~\n- [x] ~~Proper resources garbage collection~~\n- [x] ~~New commands~~ :\n    - [x] ~~list identities~~\n    - [x] ~~remove identities~~\n- [ ] daemon\n\n*Gatekeeper*:\n\n- [x] ~~HostsKey file~~\n\n*API*:\n\n- [ ] HTTPS\n\n*Global*:\n\n- [ ] More logging\n- [x] ~~Proper README~~\n- [ ] Guides\n- [ ] CI/CD\n- [ ] Multiple API's / Gatekeepers\n- [ ] Agent multi OS compatibility\n- [ ] bash / zsh completions\n- [ ] Etcd authentication","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxide%2Frssh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxide%2Frssh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxide%2Frssh/lists"}