{"id":21964409,"url":"https://github.com/beliven-it/hssh","last_synced_at":"2025-04-24T01:40:57.536Z","repository":{"id":48402056,"uuid":"330052423","full_name":"beliven-it/hssh","owner":"beliven-it","description":"A CLI to easily list, search and connect to SSH hosts. Sync down hosts from providers in order to get a centralized hosts configuration.","archived":false,"fork":false,"pushed_at":"2025-03-27T00:47:15.000Z","size":297,"stargazers_count":2,"open_issues_count":3,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-30T05:41:12.472Z","etag":null,"topics":["cli","fzf","github","gitlab","hssh","ssh-hosts","sync"],"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/beliven-it.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":"2021-01-16T00:30:12.000Z","updated_at":"2024-12-25T20:11:18.000Z","dependencies_parsed_at":"2023-10-12T10:59:56.056Z","dependency_job_id":"ec378e23-b123-46b5-9a14-a4545a10b57e","html_url":"https://github.com/beliven-it/hssh","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/beliven-it%2Fhssh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beliven-it%2Fhssh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beliven-it%2Fhssh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beliven-it%2Fhssh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beliven-it","download_url":"https://codeload.github.com/beliven-it/hssh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250545472,"owners_count":21448213,"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":["cli","fzf","github","gitlab","hssh","ssh-hosts","sync"],"created_at":"2024-11-29T12:07:57.254Z","updated_at":"2025-04-24T01:40:57.486Z","avatar_url":"https://github.com/beliven-it.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"./assets/hssh.svg\" /\u003e\u003c/p\u003e\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/github/go-mod/go-version/beliven-it/hssh?color=10bccd\u0026style=for-the-badge\" /\u003e\n\u003cimg src=\"https://img.shields.io/github/v/release/beliven-it/hssh?color=10bccd\u0026style=for-the-badge\" /\u003e\n\u003cimg src=\"https://img.shields.io/github/license/beliven-it/hssh?color=10bccd\u0026style=for-the-badge\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/github/issues-pr/beliven-it/hssh?color=10bccd\u0026style=for-the-badge\" /\u003e\n\u003cimg src=\"https://img.shields.io/github/issues/beliven-it/hssh?color=10bccd\u0026style=for-the-badge\" /\u003e\n\u003cimg src=\"https://img.shields.io/github/contributors/beliven-it/hssh?color=10bccd\u0026style=for-the-badge\" /\u003e\n\u003c/p\u003e\n\nA CLI to easily list, search and connect to SSH hosts. Sync down hosts from providers in order to get a centralized hosts configuration.\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Install\n\nAdd Homebrew Beliven tap with:\n\n```bash\n  brew tap beliven-it/tap\n```\n\nThen install `hssh` CLI with:\n\n```bash\n  brew install hssh\n```\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Configuration\n\nRun `hssh init` to generate config file inside `~/.config/hssh/config.yml` (works only if not exists yet) or let the CLI creating it automatically on first run (every command).\n\nRight now the CLI supports the following providers:\n\n- GitLab\n- GitHub\n\n\u003cbr\u003e\u003cbr\u003e\n\n### Providers\n\nProvide at least one connection string to a provider to start using the CLI. You can use more providers at the same time. Replace values as reported below.\n\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./assets/provider.svg\" /\u003e\n\u003c/p\u003e\n\n- **PROVIDER** is the provider name, like **github** or **gitlab**.\n- **ACCESS_TOKEN** is the provider access token. Required only for private projects/repositories.\n- **ENTITY_ID** is the reference to the project/repository where the files are stored. For GitLab is the project ID, you can find it under the project name (eg. `7192789`). For GitHub is the name of the repository (eg. `beliven-it/hssh`).\n- **SUBPATH** is the path to the folder inside the project/repository where config files are saved. This parameter is optional, if you want to store hosts files inside the root of the project/repository, you can delete the `@` and everything after it in the connection string.\n\nYou can also provide a structured version of the provider configuration in the following format:\n\n```yml\nproviders:\n  - type: gitlab\n    url: \"https://gitlab.com/api/v4\"\n    access_token: gpat-123456789\n    entity_id: 9999\n    subpath: \"path/to/folder\"\n  - type: gitlab\n    url: \"https://git.my-domain.com/api/v4\"\n    access_token: mydingpat-123444444\n    entity_id: 11\n    subpath: \"path\"\n\n```\n\n\u003e **NOTE**\n\u003e\n\u003e You cannot have the two providers configuration in different format. Make sure to use or the structured version, or the string version.\n\n\u003cbr\u003e\u003cbr\u003e\n\n### fzf options\n\nSee the man page (`man fzf`) for the full list of available options and add the desired ones to the `fzf_options` string inside `~/.config/hssh/config.yml`. See more about the fzf options in the [official repository](https://github.com/junegunn/fzf#options).\n\n\u003cbr\u003e\u003cbr\u003e\n\n### Config file example\n\nThis is a complete config file example with two providers:\n\n```yaml\n# HSSH configuration file\nfzf_options: \"-i\"\nproviders:\n  - \"gitlab://my_access_token:/7192789@folder\"\n  - \"github://my_access_token:/beliven-it/hssh\"\n```\n\n### Provider project/repository example\n\nProject/repository example structure with subfolder:\n\n```\n  project/repository\n  └── folder\n      ├── file1\n      └── file2\n```\n\nProject/repository example structure without subfolder:\n\n```\n  project/repository\n  ├── file1\n  └── file2\n```\n\nSSH host example to put inside hosts files:\n\n```bash\n  Host test\n    Hostname 1.2.3.4\n    User root\n    Port 22\n    IdentityFile ~/ssh/id_rsa\n```\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Usage\n\nTo see available commands and options, run: `hssh`, `hssh help`, `hssh --help` or `hssh -h`.\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Development\n\nClone the repository and run inside the folder:\n\n- `go mod init hssh`\n- `go mod vendor`\n- `go build -ldflags=\"-X hssh/cmd.Version=1.0.0\"`\n\nRun `./hssh` inside the folder to test the CLI.\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Have found a bug?\n\nPlease open a new issue [here](https://github.com/beliven-it/hssh/issues).\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n## Mentions\n\n- [dmitri13](https://www.flaticon.com/authors/dmitri13) for the icon of the terminal used in the banner image\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## License\n\nLicensed under [MIT](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeliven-it%2Fhssh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeliven-it%2Fhssh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeliven-it%2Fhssh/lists"}