{"id":21835236,"url":"https://github.com/dhi13man/change_ssh_profiles","last_synced_at":"2026-05-19T09:07:45.832Z","repository":{"id":172217443,"uuid":"649003342","full_name":"Dhi13man/change_ssh_profiles","owner":"Dhi13man","description":"Golang and Python implementation of a script allowing you to activate specific SSH profiles while disabling all other profiles, providing a convenient way to manage and switch SSH configurations based on need.","archived":false,"fork":false,"pushed_at":"2025-01-22T05:06:56.000Z","size":1251,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T06:22:15.399Z","etag":null,"topics":["automation","go","golang","python","python3","script","ssh"],"latest_commit_sha":null,"homepage":"https://medium.com/@dhi13man/streamline-your-ssh-configurations-a-journey-into-developing-an-ssh-profile-switcher-b32a1f8622c4","language":"Python","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/Dhi13man.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.MD","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-06-03T13:22:53.000Z","updated_at":"2025-01-22T05:07:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"e49b0fd3-6c1c-46e0-ad8c-d946d60060a5","html_url":"https://github.com/Dhi13man/change_ssh_profiles","commit_stats":null,"previous_names":["dhi13man/change_ssh_profiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dhi13man%2Fchange_ssh_profiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dhi13man%2Fchange_ssh_profiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dhi13man%2Fchange_ssh_profiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dhi13man%2Fchange_ssh_profiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dhi13man","download_url":"https://codeload.github.com/Dhi13man/change_ssh_profiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244811380,"owners_count":20514276,"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":["automation","go","golang","python","python3","script","ssh"],"created_at":"2024-11-27T20:18:46.757Z","updated_at":"2026-05-19T09:07:40.811Z","avatar_url":"https://github.com/Dhi13man.png","language":"Python","funding_links":["https://img.buymeacoffee.com/button-api/?text=Buy%20me%20an%20Ego%20boost\u0026emoji=%F0%9F%98%B3\u0026slug=dhi13man\u0026button_colour=FF5F5F\u0026font_colour=ffffff\u0026font_family=Lato\u0026outline_colour=000000\u0026coffee_colour=FFDD00****","https://www.buymeacoffee.com/dhi13man"],"categories":[],"sub_categories":[],"readme":"# SSH Profile Switcher\n\n[![License](https://img.shields.io/github/license/dhi13man/change_ssh_profiles)](https://github.com/Dhi13man/change_ssh_profiles/blob/main/LICENSE)\n[![Contributors](https://img.shields.io/github/contributors-anon/dhi13man/change_ssh_profiles?style=flat)](https://github.com/Dhi13man/change_ssh_profiles/graphs/contributors)\n[![GitHub forks](https://img.shields.io/github/forks/dhi13man/change_ssh_profiles?style=social)](https://github.com/Dhi13man/change_ssh_profiles/network/members)\n[![GitHub Repo stars](https://img.shields.io/github/stars/dhi13man/change_ssh_profiles?style=social)](https://github.com/Dhi13man/change_ssh_profiles/stargazers)\n[![Last Commit](https://img.shields.io/github/last-commit/dhi13man/change_ssh_profiles)](https://github.com/Dhi13man/change_ssh_profiles/commits/main)\n[![Build, Format, Test | Golang](https://github.com/dhi13man/change_ssh_profiles/actions/workflows/go.yml/badge.svg)](https://github.com/Dhi13man/change_ssh_profiles/actions)\n[![Build, Format, Test | Python](https://github.com/dhi13man/change_ssh_profiles/actions/workflows/python-package.yml/badge.svg)](https://github.com/Dhi13man/change_ssh_profiles/actions)\n\n[![Language | Golang](http://ForTheBadge.com/images/badges/made-with-go.svg)](https://golang.org/)\n[![Language | Python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)\n\n[![\"Buy Me A Coffee\"](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20an%20Ego%20boost\u0026emoji=%F0%9F%98%B3\u0026slug=dhi13man\u0026button_colour=FF5F5F\u0026font_colour=ffffff\u0026font_family=Lato\u0026outline_colour=000000\u0026coffee_colour=FFDD00****)](https://www.buymeacoffee.com/dhi13man)\n\nThis repository contains two implementations of an SSH profile Switcher script: one in Python and another in Go. These scripts allow you to activate a specific SSH profile while disabling all other profiles, providing a convenient way to manage and switch between different SSH configurations based on your needs.\n\n## Prerequisites\n\nBefore using either of the scripts, ensure that you have the following:\n\n- Python 3 installed on your system (for the Python script)\n- Go installed on your system (for the Go script)\n- SSH profiles set up with their respective private key files\n\n## Golang Implementation\n\n### Golang Usage\n\nTo activate a specific SSH profile using the Go script, use the following command:\n\n```bash\ngo run main.go \u003cprofile_name\u003e\n```\n\nReplace `\u003cprofile_name\u003e` with the name of the profile you want to activate. By default, profile names include:\n\n- work: Assumed to be a profile with the private key located in \"{HOME_DIR}/.ssh/work_rsa\"\n- personal: Assumed to be a profile with the private key located in \"{HOME_DIR}/.ssh/id_rsa\"\n\nYou can add more profiles or change the paths to existing profiles by modifying the `profileMap` dictionary in the script.\n\nYou can specify multiple profile names to activate multiple profiles at once:\n\n```bash\ngo run main.go \u003cprofile1\u003e \u003cprofile2\u003e ...\n```\n\n### Golang Usage Example\n\nTo activate the \"work\" SSH profile and disable all other profiles using the Go script, use the following command:\n\n```bash\ngo run main.go work\n```\n\n## Python Implementation\n\n### Python Usage\n\nTo activate a specific SSH profile using the Python script, use the following command:\n\n```bash\npython __main__.py -p \u003cprofile_name\u003e\n```\n\nReplace `\u003cprofile_name\u003e` with the name of the profile you want to activate. By default, profile names include:\n\n- work: Assumed to be a profile with the private key located in \"{HOME_DIR}/.ssh/work_rsa\"\n- personal: Assumed to be a profile with the private key located in \"{HOME_DIR}/.ssh/id_rsa\"\n\nYou can add more profiles or change the paths to existing profiles by modifying the `PROFILE_MAP` dictionary in the script.\n\nYou can specify multiple profile names to activate multiple profiles at once:\n\n```bash\npython __main__.py -p \u003cprofile1\u003e \u003cprofile2\u003e ...\n```\n\n### Python Usage Example\n\nTo activate the \"work\" SSH profile and disable all other profiles using the Python script, use the following command:\n\n```bash\npython __main__.py -p work\n```\n\n## Important Notes\n\n- Make sure you have the necessary permissions to access the SSH key files.\n\n- The scripts assume that the SSH profile key files are located in the `.ssh` directory in the user's home directory. If your key files are located elsewhere, you will need to modify the scripts accordingly.\n\n- For the Python script, ensure that Python 3 is installed on your system and that the necessary dependencies are met.\n\n- For the Golang script, ensure that Go is installed on your system and that the Go environment is properly set up.\n\nFeel free to modify and extend these scripts to suit your specific needs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhi13man%2Fchange_ssh_profiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhi13man%2Fchange_ssh_profiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhi13man%2Fchange_ssh_profiles/lists"}