{"id":13499441,"url":"https://github.com/aphyr/tund","last_synced_at":"2025-04-07T13:09:18.694Z","repository":{"id":1257369,"uuid":"1196147","full_name":"aphyr/tund","owner":"aphyr","description":"SSH reverse tunnel daemon","archived":false,"fork":false,"pushed_at":"2020-02-07T23:14:15.000Z","size":14,"stargazers_count":418,"open_issues_count":1,"forks_count":26,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-31T12:06:01.354Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/aphyr.png","metadata":{"files":{"readme":"README","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}},"created_at":"2010-12-24T21:32:09.000Z","updated_at":"2025-01-08T04:26:56.000Z","dependencies_parsed_at":"2022-08-16T12:45:30.270Z","dependency_job_id":null,"html_url":"https://github.com/aphyr/tund","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphyr%2Ftund","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphyr%2Ftund/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphyr%2Ftund/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aphyr%2Ftund/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aphyr","download_url":"https://codeload.github.com/aphyr/tund/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657281,"owners_count":20974345,"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","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":[],"created_at":"2024-07-31T22:00:33.166Z","updated_at":"2025-04-07T13:09:18.669Z","avatar_url":"https://github.com/aphyr.png","language":"Ruby","readme":"Tund (tunneling daemon) establishes a reverse SSH tunnel from some publically\naccessible computer to your own. In the event of theft or loss, you can log in\nto your machine as soon as it connects to the internet.\n\nIt's also useful for machines behind a NAT you'd like to have a tunnel to.\n\nYou need two computers: the local host (say, your laptop), and the remote host,\nwhich is on the internet. Tund will use SSH forwarding to connect a port on the\nremote host to a port on the local host. You can then ssh -p \u003csome-port\u003e\nremote.com to access your local host.\n\nFirst, edit the options in bin/tund.\n\nInstall tund and generate a passwordless SSH keypair. I've included an upstart\nsetup script for you, which should work on Ubuntu.\n\n  local$ sudo bin/setup\n\nCreate a user on the remote host\n  remote# adduser --disabled-password --shell /bin/false tunnel\n  remote# cd ~tunnel\n  remote# rm .bash* .profile\n\nOn the tunneling host, create .ssh/authorized_keys\n  remote# mkdir .ssh\n  remote# $VISUAL .ssh/authorized_keys\n\nand paste the public key into that file.\n\nLock down the user's homedir\n  remote# chown -R tunnel:tunnel ~tunnel\n  remote# chmod 400 .ssh/authorized_keys\n  remote# chmod 500 . .ssh\n\nConfirm that you can establish a tunnel:\n  local$ ssh -vgN -i etc/tund/key -R 2222:localhost:22 tunnel@remote.com\n\nYou can re-run bin/setup any time to make changes.\n\nI suggest leaving a honeypot account available on your local machine. It will\nencourage laptop thiefs to use the machine as-is. When they connect it to the\nnetwork, you'll be able to recover it. Conversely, any user capable of running\na privilege escalation attack has already won, when physical access is\navailable.\n","funding_links":[],"categories":["\u003ca id=\"1a9934198e37d6d06b881705b863afc8\"\u003e\u003c/a\u003e通信\u0026\u0026代理\u0026\u0026反向代理\u0026\u0026隧道","Apps","\u003ca id=\"01e6651181d405ecdcd92a452989e7e0\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"56acb7c49c828d4715dce57410d490d1\"\u003e\u003c/a\u003e未分类-Proxy","Network","\u003ca id=\"9d6789f22a280f5bb6491d1353b02384\"\u003e\u003c/a\u003e隧道\u0026\u0026穿透"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faphyr%2Ftund","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faphyr%2Ftund","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faphyr%2Ftund/lists"}