{ "info": { "author": "Carl Waldbieser", "author_email": "cwaldbieser@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console :: Curses", "Framework :: Twisted", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7" ], "description": "################################################################\nAdministrative Services Over SSH for Twisted Python Applications\n################################################################\n\n===============================================\nCreate SSH Server public key / private key pair\n===============================================\n\nExample::\n\n $ mkdir keys\n $ ckeygen -b 2048 -t rsa -f keys/id_rsa\n\n=========\nRun Demos\n=========\n\nCustom protocol over SSH::\n\n $ twistd -ny ./txsshadmin/demo.tac\n\nManhole REPL over SSH::\n\n $ ./txsshadmin/manhole_repl.py\n\n\n===========================\nCreate Your Own SSH Service\n===========================\n\n-------------------------\nCreate a Protocol Handler\n-------------------------\n\nSubclass `txsshadmin.proto_dispatcher.BaseHandler`. Override handler methods\nyou wish to customize. When the handler is created, the SSH avatar is assigned \nto its `avatar` attribute. Each handler method is passed an instance of the dispatcher.\n\n-------------------------\nCreate a Protocol Factory\n-------------------------\n\nUse `txsshadmin.proto_dispatcher.makeSSHDispatcherProtocolFactory()` to create\na protocol factory from your handler.\n\n--------------------\nCreate an SSH Avatar\n--------------------\n\nSubclass `txsshadmin.cred_base.SSHBaseAvatar` to create an avatar for your\nssh service. Assign the protocol factory you created to its `protocolFactory`\nattribute. The avatar is where you can define the capabilities of authenticated\nusers. A protocol handler for a service with users with various capabilities\nmay delegate its handlers to its avatar.\n\n--------------\nCreate a Realm\n--------------\n\nThe realm determines what avatar (if any) is returned when the authenticated \navatar ID and a list of interfaces is provided to the realm. The resulting\navatar should support at least one of the provided interfaces.\n\nFor a simple realm that returns only a single type of avatar, you can subclass\n`txsshadmin.cred_base.SSHBaseRealm` and set the `avatarFactory` attribute to\nan avatar factory. For more sophisticated realms, you can include logic that\nreturns different avatars based on capabilities keyed to the avatar ID.\n\n----------------------\nCreate the SSH Service\n----------------------\n\nSubclass `txsshadmin.service.SSHServiceBase`. Set the `realm` attribute equal\nto an instance of your realm. \n\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cwaldbieser/txsshadmin", "keywords": "ssh administation terminal", "license": "", "maintainer": "", "maintainer_email": "", "name": "txsshadmin", "package_url": "https://pypi.org/project/txsshadmin/", "platform": "", "project_url": "https://pypi.org/project/txsshadmin/", "project_urls": { "Bug Reports": "https://github.com/cwaldbieser/txsshadmin/issues", "Homepage": "https://github.com/cwaldbieser/txsshadmin", "Source": "https://github.com/cwaldbieser/txsshadmin" }, "release_url": "https://pypi.org/project/txsshadmin/0.1.0/", "requires_dist": [ "Twisted (<18,>=17)" ], "requires_python": ">=2.7, <3", "summary": "Administrative SSH interface for network services.", "version": "0.1.0" }, "last_serial": 3669844, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b50aeeb24f8a5a0ca715faf91a9ad543", "sha256": "8c3dcf7efa22fe4a1a3d512d5a57a3005b6d1e4056493d847e7b80266eebcdc8" }, "downloads": -1, "filename": "txsshadmin-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b50aeeb24f8a5a0ca715faf91a9ad543", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7, <3", "size": 8728, "upload_time": "2018-03-14T18:13:39", "url": "https://files.pythonhosted.org/packages/f1/00/f7d2262d3c4b735046a3d87f3e237c4b250934a50b0cb4b5665e2877a207/txsshadmin-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "462d95f37cdd338a3147716c4ba19ca2", "sha256": "acea0b630931ae4cd1b7775a657c70d480a8cce29ac85bb789ad9211b694de97" }, "downloads": -1, "filename": "txsshadmin-0.1.0.tar.gz", "has_sig": false, "md5_digest": "462d95f37cdd338a3147716c4ba19ca2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, <3", "size": 7454, "upload_time": "2018-03-14T18:13:42", "url": "https://files.pythonhosted.org/packages/1a/b4/3f4ac86733f812151214e9650eb8d3b619f680fd6cfe2f7126f58f79dc29/txsshadmin-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b50aeeb24f8a5a0ca715faf91a9ad543", "sha256": "8c3dcf7efa22fe4a1a3d512d5a57a3005b6d1e4056493d847e7b80266eebcdc8" }, "downloads": -1, "filename": "txsshadmin-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b50aeeb24f8a5a0ca715faf91a9ad543", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7, <3", "size": 8728, "upload_time": "2018-03-14T18:13:39", "url": "https://files.pythonhosted.org/packages/f1/00/f7d2262d3c4b735046a3d87f3e237c4b250934a50b0cb4b5665e2877a207/txsshadmin-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "462d95f37cdd338a3147716c4ba19ca2", "sha256": "acea0b630931ae4cd1b7775a657c70d480a8cce29ac85bb789ad9211b694de97" }, "downloads": -1, "filename": "txsshadmin-0.1.0.tar.gz", "has_sig": false, "md5_digest": "462d95f37cdd338a3147716c4ba19ca2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, <3", "size": 7454, "upload_time": "2018-03-14T18:13:42", "url": "https://files.pythonhosted.org/packages/1a/b4/3f4ac86733f812151214e9650eb8d3b619f680fd6cfe2f7126f58f79dc29/txsshadmin-0.1.0.tar.gz" } ] }