{"id":21227990,"url":"https://github.com/bencromwell/sshush","last_synced_at":"2025-07-10T15:30:38.756Z","repository":{"id":57470864,"uuid":"85050898","full_name":"bencromwell/sshush","owner":"bencromwell","description":"SSH config management from YAML files, with groups","archived":false,"fork":false,"pushed_at":"2024-06-09T09:15:36.000Z","size":57,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-11T19:09:02.569Z","etag":null,"topics":["ssh","ssh-config"],"latest_commit_sha":null,"homepage":"https://sshush.bencromwell.com/","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/bencromwell.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":"2017-03-15T09:01:03.000Z","updated_at":"2024-06-09T09:19:21.000Z","dependencies_parsed_at":"2024-06-08T10:35:14.390Z","dependency_job_id":"578daace-f91f-46e3-a54c-c783860ae47b","html_url":"https://github.com/bencromwell/sshush","commit_stats":{"total_commits":31,"total_committers":4,"mean_commits":7.75,"dds":"0.29032258064516125","last_synced_commit":"392e36c7e334e5dab6c5d302dcd3ba743dda96b2"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bencromwell%2Fsshush","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bencromwell%2Fsshush/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bencromwell%2Fsshush/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bencromwell%2Fsshush/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bencromwell","download_url":"https://codeload.github.com/bencromwell/sshush/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224974839,"owners_count":17401106,"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":["ssh","ssh-config"],"created_at":"2024-11-20T23:07:48.868Z","updated_at":"2024-11-20T23:07:49.303Z","avatar_url":"https://github.com/bencromwell.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sshush\n\n## Documentation\n\nFull docs can be found here: https://sshush.bencromwell.com\n\n## Intro\n\nTakes a YAML defined set of SSH configs and produces an SSH config file from it.\n\nDefaults to `~/.ssh/config.yml` for the source and `~/.ssh/config` for the destination.\n\n#### Premise\n\nI wanted a way to manage my SSH config file that allowed me to define an inheritance based structure. This allows you to group hosts together, apply common options and be able to override the options if needs be. For example, maybe you have everything in DigitalOcean on a particular port with a particular user and SSH key, but everything in AWS is different. Or they share ports but not keys. \n\n#### Globals\n\nOptions that apply to the catch-all `Host *`.\n\n#### Defaults\n\nBasic options such as a default User or IdentityFile. Can be overridden by group or individual host entries.\n\n#### Example\n\nExample config demonstrating the use of the global and default options:\n\n```yaml\n\n---\nglobal:\n  UseRoaming: \"no\"\n\ndefault:\n  User: ben\n  IdentityFile: ~/.ssh/id_rsa\n\nweb_servers:\n  Config:\n    Port: 2201\n    IdentityFile: ~/.ssh/digital_ocean\n  Hosts:\n    projects-do-1: projects-do-1.example.com\n    projects-do-2: projects-do-2.example.com\n    projects-aws:\n      HostName: projects-aws.example.com\n      IdentityFile: ~/.ssh/aws\n\nraspberry_pis:\n  Config:\n    User: pi\n  Hosts:\n    pi1: 192.168.0.107\n    pi2: 192.168.0.108\n\nlocal:\n  Hosts:\n    router:\n      HostName: 192.168.0.1\n      User: root\n    kodi: 192.168.0.200\n\nwork:\n  Config:\n    User: bcromwell\n  Hosts:\n    workpc: 10.0.0.80\n    gitlab: 10.0.0.30\n    jenkins: 10.0.0.20\n\n```\n\n#### Installation\n\nGrab a release from the GitHub releases page.\n\n### Notes\n\nThis was originally written in Python, which can be found in the 1.x branch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbencromwell%2Fsshush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbencromwell%2Fsshush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbencromwell%2Fsshush/lists"}