{"id":18656616,"url":"https://github.com/zendesk/punchabunch","last_synced_at":"2025-04-11T18:30:59.158Z","repository":{"id":40591448,"uuid":"74066375","full_name":"zendesk/punchabunch","owner":"zendesk","description":"Punchabunch: A highly concurrent, easily configurable SSH local-forwarding proxy","archived":true,"fork":false,"pushed_at":"2023-04-09T16:24:05.000Z","size":8,"stargazers_count":14,"open_issues_count":3,"forks_count":6,"subscribers_count":331,"default_branch":"master","last_synced_at":"2025-03-13T08:04:18.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zendesk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-17T20:51:22.000Z","updated_at":"2024-11-23T16:47:09.000Z","dependencies_parsed_at":"2024-06-19T01:53:17.581Z","dependency_job_id":null,"html_url":"https://github.com/zendesk/punchabunch","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zendesk%2Fpunchabunch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zendesk%2Fpunchabunch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zendesk%2Fpunchabunch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zendesk%2Fpunchabunch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zendesk","download_url":"https://codeload.github.com/zendesk/punchabunch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248458376,"owners_count":21107064,"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-11-07T07:24:21.144Z","updated_at":"2025-04-11T18:30:58.802Z","avatar_url":"https://github.com/zendesk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Punchabunch: A configurable SSH local forwarding proxy\n======================================================\n\nPunchabunch is a simple tool for setting up multiple SSH local forwarding\nproxies without a lot of configuration.  It simplifies the task of setting\nup a large number of connections that must be proxied through multiple\nSSH servers.\n\nPunchabunch doesn't do anything that `ssh(1)` and a well-written\nwrapper script and `ssh_config(5)` generator couldn't do -- but it saves\nthe user the burden of doing so.  And it comes in a neatly packaged binary\nwith a very simple configuration format.\n\nBuild instructions\n------------------\n1. Install Go, either from the [official distribution](https://golang.org/dl/) or via\n   [Homebrew](http://brew.sh).\n1. Run `go get github.com/zendesk/punchabunch`\n1. `cd $GOPATH/src/github.com/zendesk/punchabunch`\n1. `make`\n\nUsage\n-----\n```\npunchabunch [-c config_file]\n\n  -c string\n    \tPath to configuration file (default \"config.toml\")\n```\n\n\nConfiguration\n-------------\n\nPunchabunch uses a [TOML](https://github.com/toml-lang/toml) configuration\nfile to describe the desired set of SSH servers and forwarding configurations.\nIt's as simple as a set of entries that look like this:\n\n```\n[app]\nbastion = \"bastion.example.com\"\nlisten = \"12345\"\nforward = \"app.internal.example.com:80\"\n\n[db]\nbastion = \"bastion.example.com\"\nlisten = \"12345\"\nforward = \"db.internal.example.com:3306\"\n```\n\nEach entry must be preceded by an arbitrary `[name]` header (including the\nbrackets).\n\nThe keys for each entry are as follows:\n\n* `bastion`: The bastion host (server) to proxy the connection through.\n  The value must be a string of the format `host[:port]`.  If the `port`\n  value is not specified, port 22 will be used.\n\n* `listen`: The local port number to listen to for requests.  The value\n  must be a string of the format `[interface:]port`.  By default, the\n  proxy will bind to the local IPv4 loopback address (127.0.0.1). If\n  you prefer IPv6, set this value to `[::1]:\u003cport\u003e`.\n\n* `forward`: The destination host:port pair that the `listen` port\n  will forward incoming requests to.  It must be a string of the format\n  `host:port`.\n\nYou can have as many of these entries as your resources can accommodate.\nPunchabunch will start as many SSH sessions as required, in parallel.  Only one\nSSH connection will be established per bastion host, even if multiple\nforwarders are configured across it.\n\nAuthentication\n--------------\nCurrently, Punchabunch requires an active SSH Agent (see `ssh-agent(1)`)\nto operate, and it cannot be configured with other sources of\nauthentication information.   If you have a working agent, no\nconfiguration is needed -- Punchabunch will automatically locate its\nlocal socket.\n\nIn the future, Punchabunch may be able to directly read SSH private keys.\n\nAuthors\n-------\n* Michael S. Fischer, [mfischer@zendesk.com](mailto:mfischer@zendesk.com)\n\nReporting bugs\n--------------\nPlease report bugs or other issues at https://github.com/zendesk/punchabunch/issues.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzendesk%2Fpunchabunch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzendesk%2Fpunchabunch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzendesk%2Fpunchabunch/lists"}