{ "info": { "author": "Alex Rudy", "author_email": "alex.rudy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: Unix", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Utilities" ], "description": "`st`: The SuperTunnel\n---------------------\n\n|GithubActions|_ |PyPi|_\n\n.. |GithubActions| image:: https://github.com/alexrudy/supertunnel/workflows/Supertunnel%20CI/badge.svg\n.. _GithubActions: https://github.com/alexrudy/supertunnel/actions\n\n.. |PyPi| image:: https://badge.fury.io/py/supertunnel.svg\n.. _PyPi: https://badge.fury.io/py/supertunnel\n\n`st` is a supercharged SSH tunnel manager, useful for managing SSH\nconnections that you want to be long lived.\n\nTo forward port 8888 from ``host.example.com``::\n\n $ st forward -p 8888 host.example.com\n Forwarding ports:\n 1) local:8888 -> remote:8888\n ^C to exit\n [connected] 0:00:00 |\n\nThe tunnel will be kept alive, both by ssh and by supertunnel. If you lose your\nnetwork connection for a while, or if you suddenly get cut off, supertunnel\nworks with ssh to notice the connection failure, and seamlessly restarts the\ntunneling process.\n\nThat just scratches the surface of what supertunnel can do though.\n\nWhy supertunnel?\n****************\n\nI wrote this script when I used to ride a train through a tunnel every day, and\nit would interrupt my connection to a Jupyter notebook on a remote server, but\nit is useful for a lot more \u2013 think about any time your SSH connection drops,\nand you have to go find that terminal window and start it up again. Now think\nabout never doing that again. That's what ``st`` provides.\n\n``st`` is designed to be fairly flexible (my needs have evolved over time) but\nstill simple enough that someone who doesn't want to understand the intricacies\nof SSH tunneling could use it.\n\nIt is written in Python 3, and relies on the command line tool library click_,\nbut just running ``pip install supertunnel`` should get you the ``st`` command.\n\nWhy not just use ssh?\n*********************\n\nThis tool restarts your SSH connection when it goes away. But really, you could\nprobably do this all some other way, and thats fine! Go for it! If your way is\nreally awesome, open an issue_ and let me know about it.\n\n.. _click: https://click.palletsprojects.com/\n.. _issue: https://github.com/alexrudy/supertunnel/issues\n\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alexrudy/supertunnel", "keywords": "utilties ssh networking", "license": "", "maintainer": "", "maintainer_email": "", "name": "supertunnel", "package_url": "https://pypi.org/project/supertunnel/", "platform": "", "project_url": "https://pypi.org/project/supertunnel/", "project_urls": { "Homepage": "https://github.com/alexrudy/supertunnel" }, "release_url": "https://pypi.org/project/supertunnel/0.1rc3/", "requires_dist": [ "click" ], "requires_python": ">=3.7, <4", "summary": "SuperTunnel makes for easy, long-lived SSH tunneling!", "version": "0.1rc3" }, "last_serial": 5864477, "releases": { "0.1rc1": [ { "comment_text": "", "digests": { "md5": "c4171dbec9a9752562bfde06b6b1a5bd", "sha256": "858bc497626149d69c0888daf8189298886633e32d5564f93bdfda0e8bc670ad" }, "downloads": -1, "filename": "supertunnel-0.1rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "c4171dbec9a9752562bfde06b6b1a5bd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7, <4", "size": 20277, "upload_time": "2019-09-18T19:52:46", "url": "https://files.pythonhosted.org/packages/ef/f2/053797f04284ba149e5e06fcff068743f42118a6514c2dbb91b9acd9cac6/supertunnel-0.1rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "032bffdce009f9933618b6811a23ecce", "sha256": "753524937c2c9576eadb68a7edd222e2bfa61c99321e1ed4dbbb7da16d36eead" }, "downloads": -1, "filename": "supertunnel-0.1rc1.tar.gz", "has_sig": false, "md5_digest": "032bffdce009f9933618b6811a23ecce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7, <4", "size": 16387, "upload_time": "2019-09-18T19:52:49", "url": "https://files.pythonhosted.org/packages/fe/5e/203baeabe3f97845469ed53c68d34818008c79e185c6a86888bbb55527a3/supertunnel-0.1rc1.tar.gz" } ], "0.1rc2": [ { "comment_text": "", "digests": { "md5": "f7488ea65f9c12e34a3be2dcfad52310", "sha256": "0b412dd87a0d4c62335be5318a3d1474539b74109b7d5e1bd7e1c2bfd9efc849" }, "downloads": -1, "filename": "supertunnel-0.1rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "f7488ea65f9c12e34a3be2dcfad52310", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7, <4", "size": 30063, "upload_time": "2019-09-20T19:03:32", "url": "https://files.pythonhosted.org/packages/48/7b/68f6df1034b84dc98a189f4e24a0322b48910cb2d74269b9675a4801ce43/supertunnel-0.1rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dee27163a601e8fc08b1ae845b4c696e", "sha256": "6d730ceb70a21cb1c734e5d51139db8117955ebabdd2b041c84c56522be87c12" }, "downloads": -1, "filename": "supertunnel-0.1rc2.tar.gz", "has_sig": false, "md5_digest": "dee27163a601e8fc08b1ae845b4c696e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7, <4", "size": 19855, "upload_time": "2019-09-20T19:03:35", "url": "https://files.pythonhosted.org/packages/2f/cd/bb12cf1b5e41641840987f725519a6a998c3096716e11ea9edf93b2254e4/supertunnel-0.1rc2.tar.gz" } ], "0.1rc3": [ { "comment_text": "", "digests": { "md5": "2a5e106a1dd7f81caaff0fc42670a218", "sha256": "6303bbc8e3e5b910d145c4f822263d51162b7ff4939d7b7426df8195ac2f9fed" }, "downloads": -1, "filename": "supertunnel-0.1rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "2a5e106a1dd7f81caaff0fc42670a218", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7, <4", "size": 30060, "upload_time": "2019-09-20T22:51:06", "url": "https://files.pythonhosted.org/packages/73/c3/4531ab155f769230bfca41e2a0dea904e5ab0e584fcf3abdc7610ec0cecd/supertunnel-0.1rc3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5570ad47c758ba3e11e062d8949f613", "sha256": "e224dbfa4d83df5623b3b9b8ffa61215a0f7eece73d804285e1e7f074b862473" }, "downloads": -1, "filename": "supertunnel-0.1rc3.tar.gz", "has_sig": false, "md5_digest": "c5570ad47c758ba3e11e062d8949f613", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7, <4", "size": 19859, "upload_time": "2019-09-20T22:51:10", "url": "https://files.pythonhosted.org/packages/bd/6f/750253ca5c795ce2dec0e594f132b92b820b7ea0f56800cc6f9767089803/supertunnel-0.1rc3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2a5e106a1dd7f81caaff0fc42670a218", "sha256": "6303bbc8e3e5b910d145c4f822263d51162b7ff4939d7b7426df8195ac2f9fed" }, "downloads": -1, "filename": "supertunnel-0.1rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "2a5e106a1dd7f81caaff0fc42670a218", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7, <4", "size": 30060, "upload_time": "2019-09-20T22:51:06", "url": "https://files.pythonhosted.org/packages/73/c3/4531ab155f769230bfca41e2a0dea904e5ab0e584fcf3abdc7610ec0cecd/supertunnel-0.1rc3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5570ad47c758ba3e11e062d8949f613", "sha256": "e224dbfa4d83df5623b3b9b8ffa61215a0f7eece73d804285e1e7f074b862473" }, "downloads": -1, "filename": "supertunnel-0.1rc3.tar.gz", "has_sig": false, "md5_digest": "c5570ad47c758ba3e11e062d8949f613", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7, <4", "size": 19859, "upload_time": "2019-09-20T22:51:10", "url": "https://files.pythonhosted.org/packages/bd/6f/750253ca5c795ce2dec0e594f132b92b820b7ea0f56800cc6f9767089803/supertunnel-0.1rc3.tar.gz" } ] }