{ "info": { "author": "wqy", "author_email": "qiyingwangwqy@gmail.com", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# sshx (SSH eXtensions)\n\n[![Build Status](https://travis-ci.org/WqyJh/sshx.svg?branch=master)](https://travis-ci.org/WqyJh/sshx)\n[![codecov](https://codecov.io/gh/WqyJh/sshx/branch/master/graph/badge.svg)](https://codecov.io/gh/WqyJh/sshx)\n[![license](https://img.shields.io/badge/LICENCE-GPLv3-brightgreen.svg)](https://raw.githubusercontent.com/WqyJh/sshx/master/LICENSE)\n\n\nsshx is a lightweight wrapper for ssh/scp command, which has the following features:\n- Remember your ssh account\n- Connect to your account with a short command, without typing password\n- Enable jump host for your connection\n- Create ssh forwarding with a short command, without typing password\n- Enable jump host for your port forwarding\n- Copy files from/to your account with a short command, without typing password\n- Enable jump host for your scp connection\n\n\n## Installation\n\n### Install from pypi\n\nFor **Windows**:\n\n```bash\npip install --extra-index-url https://wqyjh.github.io/python-wheels/ sshx\n```\n\nFor **Linux**, **macOS**:\n\n```bash\npip install sshx\n```\n\n### Install from source\n\nFor **Windows**:\n```bash\npip install --extra-index-url https://wqyjh.github.io/python-wheels/ git+https://github.com/WqyJh/sshx\n\n# Or\n\npip install -i https://wqyjh.github.io/python-wheels/ pyHook\npython setup.py install\n\n# Or\n\npip install -r requirements.txt\n```\n\nFor **Linux**, **macOX**:\n```bash\npip install git+https://github.com/WqyJh/sshx\n\n# Or\n\npython setup.py install\n\n# Or\n\npip install -r requirements.txt\n```\n\n\n## Quick Start\n\n1. Initialization.\n\n```bash\nsshx init\n```\n\n2. Adding an account.\n\n```bash\nsshx add myhost -l test@192.168.9.155\n```\n\n(This command will ask you to type your password and sshx would store the encrypted password.)\n\n3. Connect to the account.\n\n```bash\nsshx connect myhost\n```\n\n## Usage\n\n### Initialization\n\n`sshx init` performs initialization.\n\nIt will automatically create the following files which storing the account info. If the files are damaged you'll probably \nlost all the account records, so **DON'T TOUCH IT**. If this happened, use this command to re-init and use\n`add` command to re-add them.\n\n```bash\n$ sshx init\n$ tree ~/.sshx\n~/.sshx\n\u2514\u2500\u2500 .accounts\n```\n\n### Add accounts\n\n`sshx add` adds an account.\n\n```bash\n# add an account in an simple way\nsshx add myhost -l user@host:port\n\n# add an account and specify an password for authentication\nsshx add myhost -H host -P port -u user -p\n\n# add an account and specify an identity file for authentication\nsshx add myhost -H host -P port -u user -i identity_file\n\n# add an account and specify both password and identity file for authentication\nsshx add myhost -H host -P port -u user -p -i identity_file\n\n# add an account named myhost2 and specify an password for authentication\n# use pre-added myhost as it's jump host\nsshx add -l user@host:port -v myhost myhost2\n```\n\n- Host and user options are required for adding an account.\n- Either a password or a identity option is required for adding an account. You can also specify both of them for an account. In this case, only using identity for authentication(maybe improved later).\n- Password are input from the prompt, which won't show in the screen.\n\n\n### Show accounts\n\n\n`sshx list` lists all the accounts in the following format.\n\n```bash\nname host user via \n----- ----- ----- ----- \nhost1 192.168.7.1 root \nhost2 192.168.7.2 test host1 \nhost3 192.168.7.3 root host2 \n```\n\n`sshx show` show details for a specified account.\n\n```bash\nsshx show host1 # Show account info\nsshx show host2 -p # Show account info with password\n```\n\n### Delete accounts\n\n`sshx del` deletes an account.\n\n```bash\nsshx del host1\n```\n\n### Update accounts\n\n`sshx update` updates an account.\n\nThe supported options are the same with `add` command, all the specified fields will be updated.\n\n```bash\n# change the host1's host field to domain.com\nsshx update host1 -H domain.com\n\n# change the host1's password\nsshx update host1 -p\n\n# change the host1's identity to identity2\nsshx update host1 -i identity2\n\n# TODO\n# change the host1's name to host2, and the next time you want to \n# change the account you have to use `sshx update host2 ...`\n#sshx update host1 -n host2\n```\n\n### Connect accounts\n\n`sshx connect` connect to an account.\n\n```bash\n# Connect to host1 directly.\nsshx connect host1\n\n# Connect to host1 using host2 as jump host.\n# If the host1 was originally has an jump host,\n# this argument would temporarily override it.\nsshx connect host1 -v host2\n\n# Connect to hsot1 using host2 as jump host,\n# while the host2 is using host3 as jump host.\nsshx connect host1 -v host2,host3\n```\n\n**Note** that if you use `-v` option, all of the accounts' \nvia field will be ignored.\n\n\n### Create socks5 proxies\n\n`sshx socks` creates socks5 proxies.\n\n```bash\nsshx socks host1 # create socks proxy on port 1080\nsshx socks host1 -p 1080 # create socks proxy on port 1081\n```\n\nWhy create socks5 proxies with ssh?\n\nBecause it's very simple and safe.\n- `simple` no configurations and installations, all you need is just an ssh server\n- `safe` all traffic will be encrypted by ssh, safer than `shadowsocks`\n\n\n### Create port forwardings\n\n`sshx forward` creates port fowardings.\n\n```bash\nsshx forward host1 [-f [map2]] [-rf [rmap2]] [-v host2[,host3]]\n\nmap: [bind_address]:bind_port:remote_address:remote_port\n\nrmap: bind_address:bind_port:local_address:local_port\n```\n\nFor example:\n\n```bash\n# Forward localhost:8888 to 192.168.77.7:80, \n# while the host1 is the intermedia server, \n# so you must ensure the host1 could dial to 192.168.77.7:80.\nsshx forward host1 -f :8888:192.168.77.7:80\n```\n\n```bash\n# Forward host1:8888 to 192.168.99.9:8888. \n# When you access localhost:8000 on host1, \n# the connection would be forward to 192.168.99.9:8888, \n# while your computer is working as a intermediate server \n# so you have to ensure your computer has access to 192.168.99.9:8888.\nsshx forward host1 -r :8000:192.168.99.9:8888\n```\n\n- You can use `-f` and `-rf` arguments simultaneously.\n- You can also specify multiple maps after either `-f` or `-rf`.\n- You can use `-v` option to specify jump hosts just as connect.\n\n\n### Copy files\n\n`sshx scp` copy files to/from servers.\n\n```bash\n# Copy local files to host1\nsshx scp host1:\n\n# Copy remote files from host1 to local\nsshx scp host1: \n\n# Copy local files to host1, using host2 as jump host\nsshx scp host1: -v host2\n\n# Copy remote files to local, using host2 as jump host\n# and using host3 as host2's jump host.\nsshx scp host1: -v host2,host3\n```\n\nTODO:\n```bash\n# Copy remote files from host1 to host2\nsshx scp host1: host2:\n```\n\n\n### Execute command\n\n`sshx exec` execute an remote command.\n\n```bash\n# Execute `ls -al` on host1\nsshx exec host1 ls -al\n# Execute an command with tty\nsshx exec host1 /bin/bash\n# Execute an command on host1 via host2\nsshx exec -v host2 host1 ls -al\n```\n\n\n## Test\n\n```bash\npython setup.py test\n```\n\n## Todo\n\n- [x] scp support\n- [x] jump host support\n\n\n## Bugs\n\n\n### Changelog\n\nAll notable changes to this project will be documented in this file. Dates are displayed in UTC.\n\nGenerated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).\n\n#### [0.19.8](https://github.com/WqyJh/sshx/compare/0.17.5...0.19.8)\n\n> 8 October 2019\n\n- fix(update): fix rename account [`#43`](https://github.com/WqyJh/sshx/pull/43)\n- feat: add sort and reverse for command list [`#42`](https://github.com/WqyJh/sshx/pull/42)\n- add comand exec [`#41`](https://github.com/WqyJh/sshx/pull/41)\n- refactor: remove win cmd support [`#40`](https://github.com/WqyJh/sshx/pull/40)\n- chore: use pipenv to replace pip [`#38`](https://github.com/WqyJh/sshx/pull/38)\n- Fix update [`#36`](https://github.com/WqyJh/sshx/pull/36)\n- feat: add command exec [`2047646`](https://github.com/WqyJh/sshx/commit/20476467d28742bf28bceca154009c4df1f094a7)\n- refactor: remove interact for exec [`b803b06`](https://github.com/WqyJh/sshx/commit/b803b064fbe3a2ac56c11a2c2c745d9ae8d01704)\n- docs: update README.md for command exec [`8116229`](https://github.com/WqyJh/sshx/commit/81162298875ab18060e8209b00a245502ca3d32b)\n\n#### [0.17.5](https://github.com/WqyJh/sshx/compare/0.4.3...0.17.5)\n\n> 20 September 2019\n\n- Release 0.17 [`#35`](https://github.com/WqyJh/sshx/pull/35)\n- Fix unitest [`#33`](https://github.com/WqyJh/sshx/pull/33)\n- Add ssh socks [`#32`](https://github.com/WqyJh/sshx/pull/32)\n- feat: add command show [`#31`](https://github.com/WqyJh/sshx/pull/31)\n- fix: fix uploading failure on OSX [`#26`](https://github.com/WqyJh/sshx/pull/26)\n- refactor: merge the interact and non interact version of ssh_pexpect [`6ac0424`](https://github.com/WqyJh/sshx/commit/6ac042412644745050fd2d85568c60b83a816d4e)\n- docs: update CHANGELOG.md [`033a51a`](https://github.com/WqyJh/sshx/commit/033a51ac9585c3aed97a3d8698a9539443f651ea)\n- feat: add socks command [`3446e68`](https://github.com/WqyJh/sshx/commit/3446e68bbe4d8849bd0ca6be26426b8066889b67)\n\n#### [0.4.3](https://github.com/WqyJh/sshx/compare/0.3.1...0.4.3)\n\n> 14 July 2019\n\n- Release 0.4.3 [`#24`](https://github.com/WqyJh/sshx/pull/24)\n- Remove py2 [`#23`](https://github.com/WqyJh/sshx/pull/23)\n- feat: remove python 2 support [`01fe616`](https://github.com/WqyJh/sshx/commit/01fe6160dbe40bd336397297387e2a0b45777b1a)\n- chore: add auto-changelog [`ab37b65`](https://github.com/WqyJh/sshx/commit/ab37b654d1fc52db3a631260d8fcfcffc4679a29)\n- chore: remote auto-changelog [`17ea081`](https://github.com/WqyJh/sshx/commit/17ea081c8f615c79af04829709f62ba7efae83b5)\n\n#### [0.3.1](https://github.com/WqyJh/sshx/compare/0.3.0...0.3.1)\n\n> 13 July 2019\n\n- Release 0.3.1 [`#22`](https://github.com/WqyJh/sshx/pull/22)\n- Fix output with logging module [`#21`](https://github.com/WqyJh/sshx/pull/21)\n- feat: add logging [`a8fd721`](https://github.com/WqyJh/sshx/commit/a8fd7210e556e145c9fdee7aac9a2d23f692520d)\n- chore: add auto deployment to PYPI [`ddb3044`](https://github.com/WqyJh/sshx/commit/ddb304446121b13a39c09b8767c758ff0001b3d9)\n- fix: remove prints [`d7452a1`](https://github.com/WqyJh/sshx/commit/d7452a1a498991b57130fbe5af78e7f957c0e8cf)\n\n#### [0.3.0](https://github.com/WqyJh/sshx/compare/0.2.1...0.3.0)\n\n> 12 July 2019\n\n- Release 0.3 [`#19`](https://github.com/WqyJh/sshx/pull/19)\n- Add scp support [`#18`](https://github.com/WqyJh/sshx/pull/18)\n- feat: add jump host for scp [`b8ed38f`](https://github.com/WqyJh/sshx/commit/b8ed38fc1a93d1ba3d55695edd9b08ded7c1284c)\n- feat: add sshx forward command [`85a344a`](https://github.com/WqyJh/sshx/commit/85a344ab6e081f6f807c4ff28d41d6c8ca3869c2)\n- feat: add scp command [`48bd0fd`](https://github.com/WqyJh/sshx/commit/48bd0fd4200a9b9328c2c8b4b9379106a5ee9a40)\n\n#### [0.2.1](https://github.com/WqyJh/sshx/compare/0.2.0...0.2.1)\n\n> 23 June 2019\n\n- Release 0.2.1 [`#17`](https://github.com/WqyJh/sshx/pull/17)\n- feat: add via argument for connect [`#16`](https://github.com/WqyJh/sshx/pull/16)\n- version: 0.2.1 [`1553d85`](https://github.com/WqyJh/sshx/commit/1553d85353dc9dd68734bb9184b2907f40ded419)\n\n#### [0.2.0](https://github.com/WqyJh/sshx/compare/0.1.0...0.2.0)\n\n> 23 June 2019\n\n- version: 0.2.0 [`#15`](https://github.com/WqyJh/sshx/pull/15)\n- Add jump host [`#14`](https://github.com/WqyJh/sshx/pull/14)\n- refactor: Encapsulate the config and account into class [`6c6864b`](https://github.com/WqyJh/sshx/commit/6c6864bd296d1060f3d6fd873f2b4439df6900d0)\n- refactor: Use Account in sshwrap [`39291f5`](https://github.com/WqyJh/sshx/commit/39291f5add0ffbe0e081989b58ba6914e09d7829)\n- feat: add jump connection for pexpect [`ea22b44`](https://github.com/WqyJh/sshx/commit/ea22b4492ee2f3bd9f3892044e248d6f646e6513)\n\n#### 0.1.0\n\n> 18 October 2018\n\n- Add simplifier syntax for add command [`#12`](https://github.com/WqyJh/sshx/pull/12)\n- feat: Add auto-adjust window size [`#11`](https://github.com/WqyJh/sshx/pull/11)\n- Finished basic function [`9772f83`](https://github.com/WqyJh/sshx/commit/9772f83ea3c9a3eb663fd08370af6b83c005750e)\n- Initial commit [`1d97f1d`](https://github.com/WqyJh/sshx/commit/1d97f1d68ab4781c63a5f9fbbecd5417cd50b1ed)\n- Add password encrypt [`95e2604`](https://github.com/WqyJh/sshx/commit/95e26049ec0cd22c671b88e8f6e4fd077e18a603)\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/WqyJh/sshx", "keywords": "ssh,paramiko", "license": "GNU General Public License v3", "maintainer": "", "maintainer_email": "", "name": "sshx", "package_url": "https://pypi.org/project/sshx/", "platform": "", "project_url": "https://pypi.org/project/sshx/", "project_urls": { "Homepage": "https://github.com/WqyJh/sshx" }, "release_url": "https://pypi.org/project/sshx/0.19.8/", "requires_dist": [ "itsdangerous", "pexpect", "paramiko" ], "requires_python": "", "summary": "SSH eXtensions", "version": "0.19.8" }, "last_serial": 5947405, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "5f07d607f2590858bd10a31667181c64", "sha256": "7c778b386618569f4694a3877a8e03c3a1093c090d56e824f5282087c4074f8d" }, "downloads": -1, "filename": "sshx-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5f07d607f2590858bd10a31667181c64", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23314, "upload_time": "2018-06-20T13:23:59", "url": "https://files.pythonhosted.org/packages/3b/e2/967d40f62f6153a88ed9fd725d9a3246a3c3f0552a878110fd5feac662d9/sshx-0.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad9f29249d35af46b19a432117aa89aa", "sha256": "71feac3dbd526f74094b5e66806e163f193640e06dd61c7f727832e3f78b942b" }, "downloads": -1, "filename": "sshx-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ad9f29249d35af46b19a432117aa89aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36536, "upload_time": "2018-06-20T13:24:01", "url": "https://files.pythonhosted.org/packages/19/f9/34f44865e3f1b4372c37f30ca7715cffa3ae98d1e35c1860e3f8a69828cf/sshx-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "705be52f3eb3bb94f80db37b7cd1a938", "sha256": "e4fd83e91b009019262334071a1f3c2e8e0356c235e1a6e75e6c9f31c57b3d83" }, "downloads": -1, "filename": "sshx-0.0.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "705be52f3eb3bb94f80db37b7cd1a938", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23422, "upload_time": "2018-06-20T14:05:57", "url": "https://files.pythonhosted.org/packages/c0/79/6242affb7c0303fcb7d1b8ef5ec3e2365c9cd1555723ca9221a7f877014c/sshx-0.0.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "228201f7359d04848bf60a0b188b7d0f", "sha256": "1b2106bf28f72a1dd55a37633beeef8e516800539932146bfd7bc2088580808d" }, "downloads": -1, "filename": "sshx-0.0.11.tar.gz", "has_sig": false, "md5_digest": "228201f7359d04848bf60a0b188b7d0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36660, "upload_time": "2018-06-20T14:05:59", "url": "https://files.pythonhosted.org/packages/a0/92/1eaf53f238185d40b4fefe3a38ff9d757c4ee92455bf197d85068fac5f03/sshx-0.0.11.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "b3102a24c36998dd2f320b2b4416898c", "sha256": "103987d65bab24f031d291c648b82b587b371c13bbf44793664110a086f0d7bc" }, "downloads": -1, "filename": "sshx-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b3102a24c36998dd2f320b2b4416898c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23110, "upload_time": "2018-06-19T07:46:25", "url": "https://files.pythonhosted.org/packages/d8/51/4c578156a1bb49fdc02a80efcdd82a6b742ebd1f99e4c09bbb34116fa4ea/sshx-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aaaffee72c3e864857d5d38bf69bcc77", "sha256": "371e77bec09c500cbf1c987fbf4020f1cc9a8845f45fbe70bf83ac6242a2ec07" }, "downloads": -1, "filename": "sshx-0.0.9.tar.gz", "has_sig": false, "md5_digest": "aaaffee72c3e864857d5d38bf69bcc77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36121, "upload_time": "2018-06-19T07:46:26", "url": "https://files.pythonhosted.org/packages/76/07/36295b913a24fb92452f11914342181a1891e56b15dbd2760f19f78ce9d4/sshx-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "842e81e10e40c8c35d3b7c6850d27405", "sha256": "0bd59217cf19629c13fe4894b8f813e12d6e9da7e8158756e7ae0ef74a41a096" }, "downloads": -1, "filename": "sshx-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "842e81e10e40c8c35d3b7c6850d27405", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27386, "upload_time": "2018-10-18T03:28:48", "url": "https://files.pythonhosted.org/packages/ee/6a/51a89a506c23acb72dc8113ecc7441dda3cbfae9d164359118439ab858c2/sshx-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32a4fd4f39646ede34fffd3072d86c2f", "sha256": "04fa186138c74043a969c881e39125483feeda6481d12dff768c4d86ed777366" }, "downloads": -1, "filename": "sshx-0.1.0.tar.gz", "has_sig": false, "md5_digest": "32a4fd4f39646ede34fffd3072d86c2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12410, "upload_time": "2018-10-18T03:28:49", "url": "https://files.pythonhosted.org/packages/0b/ed/186105675b4f6c596ec6c136e80fdea24a78a565306306c4990799d6e1ab/sshx-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "44762ccfc7b84e3f032c390d4293c40d", "sha256": "3be3a6e488cfbde979963fe710ddb841404afb7d79ebbbbf214701300a3f88b8" }, "downloads": -1, "filename": "sshx-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "44762ccfc7b84e3f032c390d4293c40d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27395, "upload_time": "2018-10-18T04:45:11", "url": "https://files.pythonhosted.org/packages/62/22/7b9b064876652ac1ad3b393a2d9529dc56242bfd10c7fae7d198ef0b5f93/sshx-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "edaa0fd62da546d78c8637c04e57ba37", "sha256": "300d300238ea57839c92bdb9c65835f8d2e606ce9f8dcd1aff3fe63aa5f4828b" }, "downloads": -1, "filename": "sshx-0.1.1.tar.gz", "has_sig": false, "md5_digest": "edaa0fd62da546d78c8637c04e57ba37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12421, "upload_time": "2018-10-18T04:45:13", "url": "https://files.pythonhosted.org/packages/21/8d/b349c2d4903c5585affce982c53b5d0c4ecba6f22a17ba1e7ae6147f6d52/sshx-0.1.1.tar.gz" } ], "0.17.5": [ { "comment_text": "", "digests": { "md5": "4b9f7228ef1e24b367916d2af99a4e8e", "sha256": "c21db1191d33ea55f046218df5107a4d4db38e214cccb7a4006f30901d305243" }, "downloads": -1, "filename": "sshx-0.17.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b9f7228ef1e24b367916d2af99a4e8e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31765, "upload_time": "2019-09-20T18:03:54", "url": "https://files.pythonhosted.org/packages/4f/ac/93b459842a15854f0ab119edb11042b6bae83cdaef657db50a414ff57149/sshx-0.17.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d33d59805a3d2b3a6b093fdd8f2554fc", "sha256": "444e5dbd1ae9498edfb4b608e37974be620ebb634367becc94c8a3239b37afbf" }, "downloads": -1, "filename": "sshx-0.17.5.tar.gz", "has_sig": false, "md5_digest": "d33d59805a3d2b3a6b093fdd8f2554fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19043, "upload_time": "2019-09-20T18:03:56", "url": "https://files.pythonhosted.org/packages/ac/12/6f8f75b628f60270672d05d919a83f94ba6291cb1d830f369dc7277a8152/sshx-0.17.5.tar.gz" } ], "0.19.8": [ { "comment_text": "", "digests": { "md5": "df5136110e920e434b55e2f74854a7a0", "sha256": "52804e3a5c345d9b5237b4ad7f6efde94f582ddd96db56e3f9e421e4f4234358" }, "downloads": -1, "filename": "sshx-0.19.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df5136110e920e434b55e2f74854a7a0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30430, "upload_time": "2019-10-09T01:53:25", "url": "https://files.pythonhosted.org/packages/f2/cc/892cc0c07267b13a7d50edbec9d5dc5e35fe014bd3734bc2cdde7746aacb/sshx-0.19.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92883228b0b246880903e8bc71517759", "sha256": "cb526bd9e43b8c2f195fab984398d7deeab2c00e9039329be205e0557d78d9ba" }, "downloads": -1, "filename": "sshx-0.19.8.tar.gz", "has_sig": false, "md5_digest": "92883228b0b246880903e8bc71517759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19627, "upload_time": "2019-10-09T01:53:27", "url": "https://files.pythonhosted.org/packages/02/60/99a9b822ba10ca184f0dd17a288663fcbad514644cd29cf96d8020116338/sshx-0.19.8.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "26cae06a3e0ed6a3b72754b22b908998", "sha256": "0e8a3051b7d1ad3409ed15ac54c60f54739d943f924ffc1aaa09e51a26e0762a" }, "downloads": -1, "filename": "sshx-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "26cae06a3e0ed6a3b72754b22b908998", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29776, "upload_time": "2019-06-23T11:31:16", "url": "https://files.pythonhosted.org/packages/14/bd/859786c9f345316e2e6d46fd1c5d0490ccd86ea622ffe2bb9ca623ee5dc6/sshx-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d884b8a3758351fbb1acb94bc0029bb3", "sha256": "c9a932976e7b699bdccfb3aa4625bb1faeeb009121641cf25e85e6bbd9186e6d" }, "downloads": -1, "filename": "sshx-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d884b8a3758351fbb1acb94bc0029bb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15164, "upload_time": "2019-06-23T11:31:18", "url": "https://files.pythonhosted.org/packages/c0/6b/d53568a2034fe38a3be3e6e907731b745622250a55e1e99ee21f03a70ac4/sshx-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "46a85a45612d7d1b7135edebb254a299", "sha256": "8fbb531090190eec5719b074ee9ff131ebf04645f52b5788e97e3eb65bb3c4ca" }, "downloads": -1, "filename": "sshx-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46a85a45612d7d1b7135edebb254a299", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29893, "upload_time": "2019-06-23T11:58:06", "url": "https://files.pythonhosted.org/packages/00/3f/e0d63d2857ba5c5700e3b68e5caea3d0254f3a887973dbdf921c681d4328/sshx-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63363a9dfceb3c9c737e846034023f3d", "sha256": "a0424bec69784176d54dfe1e6ecc46002af337027729c829257a3572840a0018" }, "downloads": -1, "filename": "sshx-0.2.1.tar.gz", "has_sig": false, "md5_digest": "63363a9dfceb3c9c737e846034023f3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15345, "upload_time": "2019-06-23T11:58:08", "url": "https://files.pythonhosted.org/packages/1b/fc/097b4c914a94f88875d58840d41000f5d476d247cd314da35cd18c267845/sshx-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "c0cab3fbaabdf96f38f7ee917deaea72", "sha256": "b3e3fb32363389af9808b3ea1a9aa9099b047d3d3c44be17d00ac4f6f3b2df2b" }, "downloads": -1, "filename": "sshx-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c0cab3fbaabdf96f38f7ee917deaea72", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32433, "upload_time": "2019-07-12T09:47:02", "url": "https://files.pythonhosted.org/packages/c2/78/5fe1e22f1e3b3b10f606c05661d1f7ff3f77e92777ff4b7f866e15206536/sshx-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42a35141d72c9f20f89297a21f2a8ee5", "sha256": "39fbd1c03927ed06f856b346af790a50acf3a4fdfc3f7cced2d7b2e15116976a" }, "downloads": -1, "filename": "sshx-0.3.0.tar.gz", "has_sig": false, "md5_digest": "42a35141d72c9f20f89297a21f2a8ee5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17858, "upload_time": "2019-07-12T09:47:04", "url": "https://files.pythonhosted.org/packages/96/3f/4a7d7be3af8a3cc7f0173591891f8d34471dbc664d86a4a0e9072546abc3/sshx-0.3.0.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "6c99628ae8a97e773a9e1981867f5468", "sha256": "43883f9b68ad10cf62305977ebbb2487ab8b0e653a6a82088436ed0069c25b06" }, "downloads": -1, "filename": "sshx-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6c99628ae8a97e773a9e1981867f5468", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31085, "upload_time": "2019-07-14T15:57:54", "url": "https://files.pythonhosted.org/packages/cb/4e/cc4832bd84b0640286423d47816830ff8dd577151d6245dd7321742a1f77/sshx-0.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f82e1807e38917a0b24d2906f487b4e", "sha256": "2da44c44bcf23bbe156c9ef355dfb55290a304afd15b5edcb081420d5468b0ac" }, "downloads": -1, "filename": "sshx-0.4.3.tar.gz", "has_sig": false, "md5_digest": "5f82e1807e38917a0b24d2906f487b4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17079, "upload_time": "2019-07-14T15:57:56", "url": "https://files.pythonhosted.org/packages/5a/0e/c02fb20ced38417837d6d3ef987ab1710b6435f0acbf5f128e3e0763149a/sshx-0.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "df5136110e920e434b55e2f74854a7a0", "sha256": "52804e3a5c345d9b5237b4ad7f6efde94f582ddd96db56e3f9e421e4f4234358" }, "downloads": -1, "filename": "sshx-0.19.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df5136110e920e434b55e2f74854a7a0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30430, "upload_time": "2019-10-09T01:53:25", "url": "https://files.pythonhosted.org/packages/f2/cc/892cc0c07267b13a7d50edbec9d5dc5e35fe014bd3734bc2cdde7746aacb/sshx-0.19.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92883228b0b246880903e8bc71517759", "sha256": "cb526bd9e43b8c2f195fab984398d7deeab2c00e9039329be205e0557d78d9ba" }, "downloads": -1, "filename": "sshx-0.19.8.tar.gz", "has_sig": false, "md5_digest": "92883228b0b246880903e8bc71517759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19627, "upload_time": "2019-10-09T01:53:27", "url": "https://files.pythonhosted.org/packages/02/60/99a9b822ba10ca184f0dd17a288663fcbad514644cd29cf96d8020116338/sshx-0.19.8.tar.gz" } ] }