{"id":19888677,"url":"https://github.com/vimiix/ssx","last_synced_at":"2025-05-02T17:32:31.028Z","repository":{"id":211462376,"uuid":"636518899","full_name":"vimiix/ssx","owner":"vimiix","description":"🦅 ssx is a retentive ssh client.","archived":false,"fork":false,"pushed_at":"2024-11-12T00:38:55.000Z","size":295,"stargazers_count":32,"open_issues_count":2,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-12T01:26:02.389Z","etag":null,"topics":["autologin-cli","automation","cli","lightweight-tool","ssh","ssh-client"],"latest_commit_sha":null,"homepage":"https://ssx.vimiix.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/vimiix.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":"2023-05-05T03:07:18.000Z","updated_at":"2024-11-12T00:38:53.000Z","dependencies_parsed_at":"2024-01-16T10:07:50.697Z","dependency_job_id":"93b66a31-4aa6-402e-a86b-571736b1c6ac","html_url":"https://github.com/vimiix/ssx","commit_stats":null,"previous_names":["vimiix/ssx"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimiix%2Fssx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimiix%2Fssx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimiix%2Fssx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimiix%2Fssx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vimiix","download_url":"https://codeload.github.com/vimiix/ssx/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224324468,"owners_count":17292521,"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":["autologin-cli","automation","cli","lightweight-tool","ssh","ssh-client"],"created_at":"2024-11-12T18:07:53.767Z","updated_at":"2025-05-02T17:32:31.017Z","avatar_url":"https://github.com/vimiix.png","language":"Go","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/vimiix/ssx/master/static/logo.svg?sanitize=true\"\n        height=\"130\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/vimiix/ssx/actions\" alt=\"license\"\u003e\n    \u003cimg src=\"https://github.com/vimiix/ssx/actions/workflows/release.yml/badge.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://goreportcard.com/report/github.com/vimiix/ssx\" alt=\"goreport\"\u003e\n    \u003cimg src=\"https://goreportcard.com/badge/github.com/vimiix/ssx\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/vimiix/ssx/blob/main/LICENSE\" alt=\"license\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-MIT-jasper\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/vimiix\" alt=\"author\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Author-Vimiix-blue\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/vimiix/ssx/blob/main/README.md\"\u003eEnglish\u003c/a\u003e | \u003ca href=\"https://github.com/vimiix/ssx/blob/main/README_zh.md\"\u003e中文\u003c/a\u003e\u003c/p\u003e\n\n🦅 ssx is a retentive ssh client.\n\nIt will automatically remember the server which login through it,\nso you do not need to enter the password again when you log in again.\n\n## Document\n\n👉 [https://ssx.vimiix.com/](https://ssx.vimiix.com/)\n\n## Getting Started\n\n### Installation\n\nDownload binary from [releases](https://github.com/vimiix/ssx/releases), extract it and add its path to your `$PATH` list.\n\nIf you want to install from source code, you can run command under project root directory:\n\n```bash\nmake ssx\n```\n\nthen you can get ssx binary in **dist** directory.\n\n### Add a new entry\n\n```bash\nssx [USER@]HOST[:PORT] [-i IDENTITY_FILE] [-p PORT]\n```\n\nIf given address matched an exist entry, ssx will login directly.\n\n### List exist entries\n\n```bash\nssx list\n# output example\n# Entries (stored in ssx)\n#  ID |       Address        |          Tags\n#-----+----------------------+--------------------------\n#  1  | root@172.23.1.84:22  | centos\n```\n\nssx does not read `~/.ssh/config` by default unless the environment variable `SSX_IMPORT_SSH_CONFIG` is set.\nssx will not store user ssh config entries to itself db, so you won't see their `ID` in the output of the list command\n\n```bash\nexport SSX_IMPORT_SSH_CONFIG=true\nssx list\n# output example\n# Entries (stored in ssx)\n#  ID |       Address        |          Tags\n#-----+----------------------+--------------------------\n#  1  | root@172.23.1.84:22  | centos\n#\n# Entries (found in ssh config)\n#               Address              |           Tags\n# -----------------------------------+----------------------------\n#   git@ssh.github.com:22            | github.com\n```\n\n### Tag an entry\n\n```bash\nssx tag --id \u003cENTRY_ID\u003e [-t TAG1 [-t TAG2 ...]] [-d TAG3 [-d TAG4 ...]]\n```\n\nOnce we tag the entry, we can log in through the tag later.\n\n### Login\n\nIf not specified any flag, ssx will treat the second argument as a keyword for searching from host and tags, if not matched any entry, ssx will treat it as a new entry, and try to login.\n\n```bash\n# login by interacting, just run ssx\nssx\n\n# login by entry id\nssx --id \u003cID\u003e\n\n# login by address, support partial words\nssx \u003cADDRESS\u003e\n\n# login by tag\nssx \u003cTAG\u003e\n```\n\n### Execute command\n\n```bash\nssx \u003cADDRESS\u003e [-c] \u003cCOMMAND\u003e [--timeout 30s]\nssx \u003cTAG\u003e [-c] \u003cCOMMAND\u003e [--timeout 30s]\n\n# for example: login 192.168.1.100 and execute command 'pwd':\nssx 1.100 pwd\n```\n\n### Delete an entry\n\n```bash\nssx delete --id \u003cENTRY_ID\u003e\n```\n\n## Supported environment variables\n\n- `SSX_DB_PATH`: DB file to store entries, default is `~/.ssx.db`.\n- `SSX_CONNECT_TIMEOUT`: SSH connect timeout, default is `10s`.\n- `SSX_IMPORT_SSH_CONFIG`: Whether to import the user ssh config, default is empty.\n- `SSX_UNSAFE_MODE`: The password is stored in unsafe mode\n- `SSX_SECRET_KEY`: The secret key for encrypting entry's password, default will use machineid\n\n## Upgrade SSX\n\n\u003e Since: v0.3.0\n\n```bash\nssx upgrade\n```\n\n## Copyright\n\n© 2023-2024 Vimiix\n\nDistributed under the MIT License. See [LICENSE](https://github.com/vimiix/ssx/blob/main/LICENSE) file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvimiix%2Fssx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvimiix%2Fssx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvimiix%2Fssx/lists"}