{ "info": { "author": "Tyler Cipriani", "author_email": "tyler@tylercipriani.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: POSIX :: Linux", "Programming Language :: Python" ], "description": "SSHecret\n========\n\n.. image:: https://photos.tylercipriani.com/thumbs/2f/ad8870548f45148167f0b41d6e0539/medium.jpg\n :alt: Don't worry, I can keep a sshecret\n\nIf you have an encrypted ssh key for each domain you access (you should), and\nyou keep your unlocked keys in a single ssh-agent (you maybe shouldn't),\n**AND** you've ever decided you need to forward your ssh-agent, then you should\nfeel bad.\n\nIf you forward an ssh-agent with all your unique keys for every domain to a ssh\nserver that is compromised - all those unique keys for all those unique domains\nyou access? **Kablooie!** Done. Have fun rotating them all.\n\n``sshecret`` is a tool that creates an ssh-agent for each identity file found\nin your ``ssh_config(5)`` and executes ssh commands for a particular host using\nan environment that has access to **only the key for that one host**.\n\nIf a server to which you've forwarded your ssh-agent is compromised, then only\nthe key used for that domain will be affected.\n\n``sshecret`` is a wrapper around ssh that automatically manages multiple\n``ssh-agent(1)`` sockets each containing only a single unlocked ssh key.\n``sshecret`` accepts the same parameters as ``ssh(1)`` - fundamentally\n``sshecret`` uses ``execve(2)`` to wrap ssh, modifying the environment to\nensure that each key in your ``ssh_config(5)`` uses its own ssh-agent.\n\nUse with git\n------------\n\nTo use ``sshecret`` with git, point ``GIT_SSH`` to use ``sshecret`` by adding\nthis to your shell initialization file (``~/.bashrc`` or the like)::\n\n export GIT_SSH=sshecret\n\nLimitations\n-----------\n\n``sshecret`` obviously won't help you if you're using the same ssh key for\nmultiple domains. You are clearly beyond help.\n\n``sshecret`` depends on a correct ``ssh_config(5)`` for your user (found at\n``~/.ssh/config`` or wherever ``$SSH_CONF`` is pointing), so it'll get weird if\nthat file is weird or nonexistent. Sorry, I guess.\n\n**Requirements**:\n\n* Paramiko_\n\n.. _Paramiko: http://www.paramiko.org/\n\n**Usage**::\n\n usage: sshecret [whatever you want to pass to ssh]\n\n sshecret is a wrapper around ssh that automatically manages multiple\n ssh-agent(1)s each containing only a single ssh key.\n\n EXAMPLE: sshecret -A -L8080:localhost:80 -l johndoe -p2222 example.com\n\n sshecret accepts the same parameters as ssh(1) - fundamentally sshecret uses\n execve(2) to wrap ssh, modifying the environment to ensure that each key in\n your ssh_config(5) uses its own ssh- agent.\n\n optional arguments:\n -h, --help show this help message and exit\n -v Increase verbosity of output\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/thcipriani/sshecret", "keywords": "ssh ssh-agent ssh-keygen", "license": "GNU GPLv3", "maintainer": "", "maintainer_email": "", "name": "sshecret", "package_url": "https://pypi.org/project/sshecret/", "platform": "", "project_url": "https://pypi.org/project/sshecret/", "project_urls": { "Homepage": "https://github.com/thcipriani/sshecret" }, "release_url": "https://pypi.org/project/sshecret/20170703/", "requires_dist": [ "paramiko" ], "requires_python": "", "summary": "ssh-agent key management wrapper", "version": "20170703" }, "last_serial": 2999626, "releases": { "20170703": [ { "comment_text": "", "digests": { "md5": "1c9ba401cb563407f2f2243a483bc445", "sha256": "b77e6b540578a4916d4d5bff90e844072508984cc59695e3a9465349124b79d3" }, "downloads": -1, "filename": "sshecret-20170703-py2-none-any.whl", "has_sig": false, "md5_digest": "1c9ba401cb563407f2f2243a483bc445", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7649, "upload_time": "2017-07-04T17:17:07", "url": "https://files.pythonhosted.org/packages/c1/bc/f9547f40508c4ce7c683aa858a944ee0164564924a9582ac47e535a04bde/sshecret-20170703-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1c9ba401cb563407f2f2243a483bc445", "sha256": "b77e6b540578a4916d4d5bff90e844072508984cc59695e3a9465349124b79d3" }, "downloads": -1, "filename": "sshecret-20170703-py2-none-any.whl", "has_sig": false, "md5_digest": "1c9ba401cb563407f2f2243a483bc445", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7649, "upload_time": "2017-07-04T17:17:07", "url": "https://files.pythonhosted.org/packages/c1/bc/f9547f40508c4ce7c683aa858a944ee0164564924a9582ac47e535a04bde/sshecret-20170703-py2-none-any.whl" } ] }