{"id":13815713,"url":"https://github.com/TimidRobot/cmc","last_synced_at":"2025-05-15T09:33:18.398Z","repository":{"id":6910300,"uuid":"8160721","full_name":"TimidRobot/cmc","owner":"TimidRobot","description":"ControlMaster Controller - Eases management of SSH ControlMaster connections","archived":false,"fork":false,"pushed_at":"2024-06-28T17:13:42.000Z","size":88,"stargazers_count":82,"open_issues_count":2,"forks_count":16,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-11-13T04:31:41.505Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","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/TimidRobot.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-02-12T15:01:16.000Z","updated_at":"2024-09-30T04:54:42.000Z","dependencies_parsed_at":"2024-01-13T22:23:02.910Z","dependency_job_id":"a9ac9110-cdb4-408e-b631-a34d811eea0b","html_url":"https://github.com/TimidRobot/cmc","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimidRobot%2Fcmc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimidRobot%2Fcmc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimidRobot%2Fcmc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimidRobot%2Fcmc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TimidRobot","download_url":"https://codeload.github.com/TimidRobot/cmc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225342823,"owners_count":17459483,"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-08-04T04:03:56.303Z","updated_at":"2024-11-19T11:30:54.558Z","avatar_url":"https://github.com/TimidRobot.png","language":"Shell","funding_links":[],"categories":["SSH","Shell"],"sub_categories":["Packages"],"readme":"# cmc\n\nControlMaster Controller - Eases management of SSH ControlMaster connections\n\n\n## Overview\n\n`cmc` makes SSH ControlMaster sessions easy. SSH ControlMaster sessions have\nthe following benefits:\n- When using a SSH Bastion, you will only be prompted for (two-factor)\n  authentication once.\n  - Hosts behind the SSH Bastion can be accessed \"directly\" by proxying through\n    the SSH Bastion (see workflow_).\n- Sessions to or through ControlMaster hosts do not need to create a new\n  connection (SSH will be faster for most tasks)\n\n\n## Script Help\n\n```\nUsage:  cmc [ -c HOST | -x HOST ]\n        cmc [ -l | -X ]\n        cmc -h\n\nControlMaster Controller - Eases management of SSH ControlMaster connections\n\nOptions:\n    -h      show this help message and exit\n    -c HOST check HOST ControlMaster connection status (may be specified more\n            than once)\n    -d      print debug information\n    -l      list all active ControlMaster connection sockets\n    -x HOST exit ControlMaster session (may be specified more than once)\n    -X      exit all ControlMaster connections with sockets\n\nNotes:\n    - Any unused sockets in ControlPath are removed with -l and -X\n```\n(output of `cmc -h`)\n\n\n## Install\n\n1. [Install Homebrew][brewinstall] -- The missing package manager for macOS\n2. Add the \"tap\":\n    ```shell\n    brew tap TimidRobot/tap\n    ```\n3. Install `cmc`:\n    ```\n    brew install cmc\n    ```\n\nAlternatively, since `cmc` is a bash script without esoteric dependencies,\nyou can simply download it and ensure it is in your `PATH`.\n\nIf this utility is helpful for you, please star this project so that it can\neventually be included in Homebrew proper. Thank you!\n\n[brewinstall]: http://brew.sh/#install\n\n\n## Documentation\n\n\n### ControlPersist\n\nPrior to the addition of `ControlPersist` in [OpenSSH 5.6][openssh56], this\nutility was needed. However it still convenient to be able to quickly manage\nControlMaster connections.\n\nFor more information on `ControlPersist` see [ssh_config(5)][mansshconfig].\n\n[openssh56]: https://www.openssh.com/txt/release-5.6\n[mansshconfig]: http://man.openbsd.org/OpenBSD-current/man5/ssh_config.5\n\n\n### Workflow\n\nSee [`docs/workflow`][workflow].\n\n[workflow]: docs/workflow.md\n\n\n### Annotated SSH Configuration\n\nSee [`docs/annotated_config`][annotated].\n\n[annotated]: docs/annotated_config.md\n\n\n### Related\n\n- any \\*nix Operating Systems (including Linux and macOS):\n  - **[solo-agent][soloagent]**: Enable discrete SSH Agents to avoid leaking\n    access across hosts\n- macOS only\n  - [mac-ssh-confirm][confirm]: Protect against SSH Agent Hijacking on macOS\n    with the ability to confirm agent identities prior to each use\n\n[gacli]: https://github.com/TimidRobot/gacli\n[soloagent]: https://github.com/TimidRobot/solo-agent\n[confirm]: https://github.com/TimidRobot/mac-ssh-confirm\n\n\n## Requirements\n\n- any \\*nix Operating System (including Linux and macOS) with:\n  - core utilities (`awk`, `find`, `grep`, `ps`, and `sed`)\n  - GNU Bourne-Again Shell 3.0 or later (`bash`)\n  - OpenSSH 5.6 or later (`ssh`)\n    - For OpenSSH versions between 4.0 and 5.6, try [cmc 1.0.3][cmc103]\n\n[cmc103]:https://github.com/TimidRobot/cmc/tree/1.0.3\n\n\n## Development\n\nRun `./test_cmc ${TESTHOST}` prior to signing a new release.\n\nThank you:\n- [shellcheck][shellcheck] - a static analysis tool for shell\n\n[shellcheck]: https://github.com/koalaman/shellcheck\n\n\n## License\n\n- [`LICENSE`](LICENSE) (Expat/[MIT][mit] License)\n\n[mit]: http://www.opensource.org/licenses/MIT \"The MIT License | Open Source Initiative\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTimidRobot%2Fcmc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTimidRobot%2Fcmc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTimidRobot%2Fcmc/lists"}