{ "info": { "author": "Jonghak Choi", "author_email": "haginara@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "SSH Config\n==========\n[![PyPI version](https://badge.fury.io/py/ssh-config.svg)](https://badge.fury.io/py/ssh-config)\n[![Build Status](https://travis-ci.org/haginara/ssh_config.svg?branch=master)](https://travis-ci.org/haginara/ssh_config)\n\nSSH client config file manager\n\n\nWhat is ssh_config?\n-------------------\nhttps://linux.die.net/man/5/ssh_config\n\nWhy\n---\nI don't remember all the servers I am managing. Also all servers requires all different configuration to connec to it. I know ~.ssh/config can handle this kind of issue. I want it to handle this file easier.\n\nYes, I am not sure this is eaiser way to handle it. but I am trying.\n\nRequirements\n------------\nPython 2.7, 3.6, 3.7\n\nInstallation\n------------\n```\n$ pip install ssh-config\n```\n\nUsage\n-----\n```\nssh-config 0.0.12\n\n Usage:\n ssh-config [options] [COMMAND] [ARGS...]\n\n Options:\n -h --help Show this screen.\n -v --version Show version.\n -f --config FILE Specify an ssh client file [default: ~/.ssh/config]\n\n Commands:\n ls Show list of Hosts in client file\n add Add new Host configuration\n rm Remove exist Host configuration\n init Create ~/.ssh/config file\n import Import Hosts from csv file to SSH Client config\n export Export Hosts to csv format\n bastion Bastion register/use\n version Show version information\n```\n\nUse-cases\n---------\n\n#### List hosts\n```\n$ ssh-config ls \n# It shows name and HostName attribute\nserver1: 203.0.113.76\n*: None\nserver_cmd_1: 203.0.113.76\nserver_cmd_2: 203.0.113.76\nserver_cmd_3: 203.0.113.76\n```\n\n##### Add host\n```\n$ ssh-config add \"server_cmd_4\" HostName=203.0.113.77 IdentityFile=\"~/.ssh/cmd_id_rsa\"\n```\n\n##### Update host\n```\n$ ssh-config add --update -p \"server_cmd_3\" IdentityFile=\"~/.ssh/cmd_id_rsa\"\n```\n\n##### Remove host\n```\n$ ssh-config rm \"server_3\" \n```\n\n### Using pattern to get list or update exist hosts\n\n##### List hosts with pattern\n```\n$ ssh-config ls \"server_*\"\n# It shows name and HostName attribute\nserver_cmd_1: 203.0.113.76\nserver_cmd_2: 203.0.113.76\nserver_cmd_3: 203.0.113.76\n```\n\n##### Update hosts with pattern\n```\n$ ssh-config add --update -p \"server_*\" IdentityFile=\"~/.ssh/cmd_id_rsa\"\n```\n\n\n#### add ssh key to multiple servers\n```\nssh-config ls --only-name | xargs -I{} ssh-copy-id -i ~/.ssh/id_rsa {}\n```\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/haginara/ssh_config", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "ssh-config", "package_url": "https://pypi.org/project/ssh-config/", "platform": "", "project_url": "https://pypi.org/project/ssh-config/", "project_urls": { "Homepage": "https://github.com/haginara/ssh_config" }, "release_url": "https://pypi.org/project/ssh-config/0.0.14/", "requires_dist": [ "pyparsing", "docopt", "texttable", "Jinja2" ], "requires_python": "", "summary": "ssh client config manager", "version": "0.0.14" }, "last_serial": 5699322, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "6b3c3970c98c94b3cb4fbe2618a03ebb", "sha256": "404d46b3c8f6b1a70b4ba52166ac9d328c3080376a83483c0f596fe00869a990" }, "downloads": -1, "filename": "ssh_config-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "6b3c3970c98c94b3cb4fbe2618a03ebb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8519, "upload_time": "2019-03-28T07:08:36", "url": "https://files.pythonhosted.org/packages/6a/5a/c8bf26cec70d7440abc686b17e5bdda59cd757d26b312856aeec14132896/ssh_config-0.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f684a5d205ea37ebadf23c5e37fe9e1", "sha256": "fb25f5652f457907df80a50e2c6eca456615592fda7bb6ceaa947e535f11510f" }, "downloads": -1, "filename": "ssh_config-0.0.10.tar.gz", "has_sig": false, "md5_digest": "6f684a5d205ea37ebadf23c5e37fe9e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6801, "upload_time": "2019-03-28T07:08:38", "url": "https://files.pythonhosted.org/packages/fb/bd/84c0304b40a66174e66c6fd7e1268ba626dd0254b71c58483396dfcdaba5/ssh_config-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "747faa6b7eee6a9b9077ec6e3fbb16da", "sha256": "8a4f23875cc3aace9b1109e3f16a5ab6ae0651ea7a8ac558da63b2d47d1d6040" }, "downloads": -1, "filename": "ssh_config-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "747faa6b7eee6a9b9077ec6e3fbb16da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8529, "upload_time": "2019-03-28T07:13:45", "url": "https://files.pythonhosted.org/packages/b4/c2/4e46e7fa994c641198ec1a7655307eb43313b20c01e0caeedac74b2c4424/ssh_config-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05c79d6f0c0eeb7c894b4e2f563f166d", "sha256": "271cc6dd0fe3ad28cccb07218f6d47a4132397952fe939bf1d9fce8ac00b05ec" }, "downloads": -1, "filename": "ssh_config-0.0.11.tar.gz", "has_sig": false, "md5_digest": "05c79d6f0c0eeb7c894b4e2f563f166d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7210, "upload_time": "2019-03-28T07:13:46", "url": "https://files.pythonhosted.org/packages/ec/c8/4a66161360ae874cb160b906772dc01c351907ee7b228dde91ffc92db8c3/ssh_config-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "ca6bf9603e9ff4d98fff5ffd31bae224", "sha256": "fde5b63b7e02bcedec2c994d081714198635f47e3eaa5720696e1fb2f440bbc5" }, "downloads": -1, "filename": "ssh_config-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "ca6bf9603e9ff4d98fff5ffd31bae224", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9272, "upload_time": "2019-04-03T00:48:46", "url": "https://files.pythonhosted.org/packages/11/cd/72dcbc6723b0b5cfebc6a7d6a2bdfc23b68c84f9c01d024d8295e92603ca/ssh_config-0.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a96dddbdda3dd382df966e2dd9628efb", "sha256": "1c7b62222d166df5e707f54bd0520ef32cfa50604c369b84eff94b1b91d53258" }, "downloads": -1, "filename": "ssh_config-0.0.12.tar.gz", "has_sig": false, "md5_digest": "a96dddbdda3dd382df966e2dd9628efb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8063, "upload_time": "2019-04-03T00:48:47", "url": "https://files.pythonhosted.org/packages/b3/a2/72ca9d7c0b181b58d462647421ba1531ce3a62ca9b1c8b65c29c3a0349b9/ssh_config-0.0.12.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "84cfd5373644f62627158365ae03b5ad", "sha256": "a0905240e71d8862444c906e7c1c81017f6f33065fdf521a11e8cb9cd05e4c1f" }, "downloads": -1, "filename": "ssh_config-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "84cfd5373644f62627158365ae03b5ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9669, "upload_time": "2019-08-19T16:34:26", "url": "https://files.pythonhosted.org/packages/6d/78/8307442c9aaa05f39ae8a2b41d90f2d193dfb1a7d61ec079f7e54bfdf0d3/ssh_config-0.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a5def4716cdd22775daba7aa6c8cb1e", "sha256": "15d9121012ddc565353779e01e935112379d8225f8145adea9bbe0d57c2f8f9a" }, "downloads": -1, "filename": "ssh_config-0.0.14.tar.gz", "has_sig": false, "md5_digest": "8a5def4716cdd22775daba7aa6c8cb1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8276, "upload_time": "2019-08-19T16:34:27", "url": "https://files.pythonhosted.org/packages/e1/57/6e582d1b9b8cdd25e62a39311a4a67815a6d624951f6d834f3bff975d54d/ssh_config-0.0.14.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4dd52e18a7febc5f497a8155f2691303", "sha256": "f83144a9eceaa7874d43b0f06212a7eaaa09bbaeab65946f664ed9303dbd7057" }, "downloads": -1, "filename": "ssh_config-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4dd52e18a7febc5f497a8155f2691303", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5942, "upload_time": "2019-03-18T06:49:57", "url": "https://files.pythonhosted.org/packages/5d/03/ce0ae4f3f4406e61e1672f9096ce8cc48bb0d45dc43b14a2209ee7261091/ssh_config-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02478dd309eb5f441c407e556bdf4adc", "sha256": "b553027cfaba1eaa846cee4e9bd383bf383932be51a63d8c6a3150e75f1e86bb" }, "downloads": -1, "filename": "ssh_config-0.0.2.tar.gz", "has_sig": false, "md5_digest": "02478dd309eb5f441c407e556bdf4adc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4151, "upload_time": "2019-03-18T06:49:59", "url": "https://files.pythonhosted.org/packages/77/a6/de317806f66b25e6e7281c7127e14c14d32fe387a47594e6b5d565c8fbcb/ssh_config-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "77893446549f5b3be513c19e30a9227a", "sha256": "d0734fb040b85734557f4ee0f24906a93391e82a3f63e8d83e6c22cbac9b98f5" }, "downloads": -1, "filename": "ssh_config-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "77893446549f5b3be513c19e30a9227a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6067, "upload_time": "2019-03-18T08:22:15", "url": "https://files.pythonhosted.org/packages/bc/ae/d73b06f03504476f183cff90ab21b5bf26f928e0691b9fd77c23699a221c/ssh_config-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffccedec1c70a5daac34a287b0c11718", "sha256": "3cec758dcdb1eea649b50aee81e64d48b5400af9b8ab9af271dc4fa12468c608" }, "downloads": -1, "filename": "ssh_config-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ffccedec1c70a5daac34a287b0c11718", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4276, "upload_time": "2019-03-18T08:22:16", "url": "https://files.pythonhosted.org/packages/f7/84/ac117b2c6745ac14b9bd51849df1d9d73d93ef401578f21f672efe92d521/ssh_config-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "16d52e24e11c56ef5402b797386cd333", "sha256": "76588461cd3cdbee6c6284442d7fab688fe2ebea9c2ba3234a85ea6ddfee2a28" }, "downloads": -1, "filename": "ssh_config-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "16d52e24e11c56ef5402b797386cd333", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6577, "upload_time": "2019-03-18T21:28:18", "url": "https://files.pythonhosted.org/packages/d4/76/e744f042b987b1914c7fc1522342a9cc11e99d5036d7b3d504a49ed5f75b/ssh_config-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c1506a22992f8ab2190e93ccbbd5eb25", "sha256": "43d1aa41c68702bc83d8e7416542ab04239d6870c0a534a9de1752b0d25350bd" }, "downloads": -1, "filename": "ssh_config-0.0.4.tar.gz", "has_sig": false, "md5_digest": "c1506a22992f8ab2190e93ccbbd5eb25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4934, "upload_time": "2019-03-18T21:28:20", "url": "https://files.pythonhosted.org/packages/25/64/a26a00afcb885d8e1f2b17d36c2d9df47447e00743749f4e76f463c2fbf0/ssh_config-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "4eba532080a520d60884cc42f0cc1e86", "sha256": "89b32c1b5c9f499cc7ce18db36f3490febb0972e4df4d705d347bcbe51f3c8e2" }, "downloads": -1, "filename": "ssh_config-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4eba532080a520d60884cc42f0cc1e86", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6863, "upload_time": "2019-03-20T08:23:27", "url": "https://files.pythonhosted.org/packages/5b/64/1176abed757c858cd5419c55e237dd25d759a2d4cc3cfcc0dfe5f638da27/ssh_config-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11fbcb8597b8f0f15ffe0d4be08d200f", "sha256": "cc67ab6b4ce41d509f130a75573152369bdf1d4980735f9332aff59293cd09b4" }, "downloads": -1, "filename": "ssh_config-0.0.5.tar.gz", "has_sig": false, "md5_digest": "11fbcb8597b8f0f15ffe0d4be08d200f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5228, "upload_time": "2019-03-20T08:23:28", "url": "https://files.pythonhosted.org/packages/7a/99/d5add768743b249d89b7e1f9c4adc4e9b4af8147eb0092b27b7740fb49d2/ssh_config-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "e822e8e5ca82b4ef48f3fc863b4a603c", "sha256": "03f68b1d38bf09f887ea8e7ae9558d225828d96169f7f86449fd39e4eac5bfe7" }, "downloads": -1, "filename": "ssh_config-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "e822e8e5ca82b4ef48f3fc863b4a603c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6977, "upload_time": "2019-03-20T08:39:46", "url": "https://files.pythonhosted.org/packages/0d/7f/1841f272094166dde4b1d11840656229ba3ea46c3b0b5bebd22c22c38f0a/ssh_config-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34b8789d2092b95d14873f9390d01c96", "sha256": "48310d05fd47717f6e52224a8137b3a6bc463b1a3da7c2543f6ddba09f60a8cd" }, "downloads": -1, "filename": "ssh_config-0.0.6.tar.gz", "has_sig": false, "md5_digest": "34b8789d2092b95d14873f9390d01c96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5346, "upload_time": "2019-03-20T08:39:48", "url": "https://files.pythonhosted.org/packages/4b/55/6410e5d93c2b9f1ac691dd71fb925661da9df8e3129ff181aa710ef3e3c4/ssh_config-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "90058a471b27a2e47f6a048baef65008", "sha256": "9ed3a654df5f0313a2e795eb4da975a12d33e36cc882a2951dd1c7c43387584b" }, "downloads": -1, "filename": "ssh_config-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "90058a471b27a2e47f6a048baef65008", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7232, "upload_time": "2019-03-20T21:29:39", "url": "https://files.pythonhosted.org/packages/4c/40/5ec92ded4399b9718d94f67203f4e6bbe45ddde0a6d22863bad120d1c9d7/ssh_config-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "993d2280acff74690e60ae14a54faa17", "sha256": "73f38aa42227b2a5f1ad4c55811005b012bc27db2edd1ac55eaf50256c14ad76" }, "downloads": -1, "filename": "ssh_config-0.0.7.tar.gz", "has_sig": false, "md5_digest": "993d2280acff74690e60ae14a54faa17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5642, "upload_time": "2019-03-20T21:29:41", "url": "https://files.pythonhosted.org/packages/96/b1/6f86cbf26d7b3d94fd22877b012fc2cdbca6d4f65d39c87955d35c8b52b4/ssh_config-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "66381d63bbae3674071c59ba26d3faee", "sha256": "6ef449bf2c912617031340650a3efcab90f283638ca35aaaf46c320bdf97410f" }, "downloads": -1, "filename": "ssh_config-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "66381d63bbae3674071c59ba26d3faee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7436, "upload_time": "2019-03-21T07:11:55", "url": "https://files.pythonhosted.org/packages/7b/cf/9180858edc9433746937b253857a66d2299a3408eaa9b27aaa0ce133109d/ssh_config-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56b66ec87b24dc2f1d36f44970b896f9", "sha256": "bca3476ea174b58409ec40030fb7e0030fcda590c4cad29f52d033020a9e5c97" }, "downloads": -1, "filename": "ssh_config-0.0.8.tar.gz", "has_sig": false, "md5_digest": "56b66ec87b24dc2f1d36f44970b896f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5831, "upload_time": "2019-03-21T07:11:56", "url": "https://files.pythonhosted.org/packages/40/09/ff302db2bc0238e6392cf261bb30000cf9caf6498aa58769af956d90eb04/ssh_config-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "23c16ecc4f76a0d2f013aefb8d8dc12f", "sha256": "cbb04bff09bc68c9f313bac3ff8835083aa6c608973eb2490e16ea0b063e53d1" }, "downloads": -1, "filename": "ssh_config-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "23c16ecc4f76a0d2f013aefb8d8dc12f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8111, "upload_time": "2019-03-24T05:36:14", "url": "https://files.pythonhosted.org/packages/8e/3c/41affd23045056ed5a2ef139d6c83956613da22757807ea231d47e0e6052/ssh_config-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e923b4b91bc7fba4a76a5d8a1ed2979b", "sha256": "3f4b6f029f59b5b9324c170ed48c98f68c1c9dbeefd832ebb692c1fcfd92d482" }, "downloads": -1, "filename": "ssh_config-0.0.9.tar.gz", "has_sig": false, "md5_digest": "e923b4b91bc7fba4a76a5d8a1ed2979b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6412, "upload_time": "2019-03-24T05:36:16", "url": "https://files.pythonhosted.org/packages/71/f0/2e435bfa30a52b82515c3cfeaffc3d492c61c4ae36218ca2b4710587e094/ssh_config-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "84cfd5373644f62627158365ae03b5ad", "sha256": "a0905240e71d8862444c906e7c1c81017f6f33065fdf521a11e8cb9cd05e4c1f" }, "downloads": -1, "filename": "ssh_config-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "84cfd5373644f62627158365ae03b5ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9669, "upload_time": "2019-08-19T16:34:26", "url": "https://files.pythonhosted.org/packages/6d/78/8307442c9aaa05f39ae8a2b41d90f2d193dfb1a7d61ec079f7e54bfdf0d3/ssh_config-0.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a5def4716cdd22775daba7aa6c8cb1e", "sha256": "15d9121012ddc565353779e01e935112379d8225f8145adea9bbe0d57c2f8f9a" }, "downloads": -1, "filename": "ssh_config-0.0.14.tar.gz", "has_sig": false, "md5_digest": "8a5def4716cdd22775daba7aa6c8cb1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8276, "upload_time": "2019-08-19T16:34:27", "url": "https://files.pythonhosted.org/packages/e1/57/6e582d1b9b8cdd25e62a39311a4a67815a6d624951f6d834f3bff975d54d/ssh_config-0.0.14.tar.gz" } ] }