{"id":17871334,"url":"https://github.com/da03/mm","last_synced_at":"2025-04-02T23:22:09.816Z","repository":{"id":85315294,"uuid":"61156770","full_name":"da03/mm","owner":"da03","description":"Manage SSH key files of multiple machines and create nicknames for them.","archived":false,"fork":false,"pushed_at":"2016-09-19T22:36:09.000Z","size":17,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T19:11:39.791Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/da03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-06-14T21:25:58.000Z","updated_at":"2017-03-07T18:00:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"778473ec-5ec2-447c-ae47-98f769cbf842","html_url":"https://github.com/da03/mm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/da03%2Fmm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/da03%2Fmm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/da03%2Fmm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/da03%2Fmm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/da03","download_url":"https://codeload.github.com/da03/mm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246906746,"owners_count":20852975,"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-10-28T10:30:27.995Z","updated_at":"2025-04-02T23:22:09.728Z","avatar_url":"https://github.com/da03.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Machines Management\n\nAssign nicknames to your remote servers (such as EC2 instances) such that you can log in, copy files by very simple commands like:\n\n\nSimilar to ssh, we have:\n\n```\nmssh nickename\n```\n\nSimilar to scp, we have:\n\n```\nmcp nickname1:path/to/file1 nickename2:path/to/file2\n```\n\nSimilar to ls, we have:\n\n```\nmls nickname:path/to/file\n```\n\nFurthermore, you do not need to enter passwords every time after setting up on each machine only ONCE. \n\nThe implementation is purely based on python 2.7, with no additional package requirements.\n\n### Requirements:\n\nYou must have a central server with a static ip or domain name in order to maintain the information of other machines. You can only copy files to a machine with a public ip address (or domain name).\n\n### Setup (You only need to do that once for each machine):\n\nMake sure the installation location relative to home directory is the same on every machine.\n\nFirst, set the central server in `config.txt` such that it has the following format:\n\n```\ncentral: yourusername@youripaddress\n```\n\nMake sure the modification of `config.txt` is visible to every machine you want to add. A simple way is to update your github repository and clone it on every machine.\n\nThen central server needs to be set up, on central server do:\n\n```\npython setup.py --name central\n```\n\n```\nsource ~/.bashrc\n```\n\nOn machine1 do the following:\n\n```\npython setup.py --name Jacob\n```\n\n```\nsource ~/.bashrc\n```\n\nYou may be required to enter the password TWICE for your central server. Then the above command will give machine1 a nickname `Jacob`.\n\nOn machine2 do the following:\n\n```\npython setup.py --name Israel\n```\n\n```\nsource ~/.bashrc\n```\n\nThis will give machine2 a nickname `Israel`.\n\n\n### Copy files:\n\nNow, you can copy files using the following command:\n\n```\nmcp Jacob:path/to/file1 Israel:path/to/file2\n```\n\nOr copy to your local machine (You must run `python setup.py --name nickname` and `source ~/.bashrc` beforehand):\n\n```\nmcp Jacob:path/to/file1 path/to/file2\n```\n\n### Copy directories:\n\n```\nmcpr Jacob:path/to/dir1 Israel:path/to/dir2\n```\n\n### List files:\nFurthermore, you can list files on any machine:\n\n```\nmls Jacob:path/to/file1\n```\n\n### Log in to other machines:\nYou can also log in to any machine by nickname:\n\n```\nmssh Jacob\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fda03%2Fmm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fda03%2Fmm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fda03%2Fmm/lists"}