{ "info": { "author": "Max Kovgan", "author_email": "maxk@devopsent.biz", "bugtrack_url": null, "classifiers": [], "description": "========\nSSHAdder\n========\n\n.. image:: https://github.com/mvk/sshadder/raw/master/logo.200x200.png\n :target: https://github.com/mvk/sshadder\n\n\n\nAbout\n=====\n\n.. image:: https://travis-ci.org/mvk/sshadder.svg?branch=master\n :target: https://travis-ci.org/mvk/sshadder\n\nssh keys manager for multiple password protected private keys written currently in Python.\nStop adding them manually.\n\n\nWhat it does\n------------\n\nDefines key bundles and allows adding all of keys in the bundle to a running ssh-agent\nIn a way it is like GNU_Keychain_, but does not force you to type in all your passwords, thank you @jamiesonbecker!\n\nWhat it does not\n----------------\n\n* graphic desktop, messaging a l\u00e1 D-Bus and the likes\n* compete with real private keys managers like Seahorse_, LastPass_, KeePass_\n* manage ``ssh-agent``\n\nInstallation\n============\n\nRun in virtualenv: ::\n\n pip install sshadder\n\nNOTE: The crypto path is not yet vetted, so do not install this system-wide just yet. Honestly :)\n\nUsage\n=====\n\nPrerequisites:\n--------------\n\nSo that ``sshadder`` can work we need:\n\n* Running process of ``ssh-agent``\n* Environment variable ``SSH_AUTH_SOCK`` pointing to that running process\n\nSetup:\n------\n\nRun: ::\n\n sshadder -i\n\nThe text will guide you to give a master password (not saved anywhere), and then for each key you wish to add, enter:\n\n* file path\n* password\n\nWhen you're done, choose 's' option to save and quit.\n\nRegular Use:\n------------\n\nRun: ::\n\n sshadder\n\nPlease refer to ``--help``, which shows default locations it's looking for the JSON files.\n\n\nWhat is actually happening\n--------------------------\n\nUpon invocation in normal mode, ``sshadder`` is:\n\n1. checking ssh-agent environment variable is pointing to something useful\n1. iterating over configuration file ``.sshagent.json`` entries and is adding the keys you have added.\n\nThe key passwords are encrypted, so master password is used to decrypt them to add them to the running agent.\nEach password is encrypted and then encoded using ``Base64`` and added to the key item.\nThe text file is kept as it is now - text file.\n\nNot sure how REALLY safe it is, but it is safer than plain text shell scripts.\n\n\nTransparency\n~~~~~~~~~~~~\n\n``pexepect.spawn()`` is used, which means:\nBeing able to access your user's ``/proc`` filesystem at the time of adding the keys can allow unauthorized access to your passwords.\nAn attacker could possibly \"sniff\" file descriptors to see the passwords passed to ssh-agent upone each key.\nIf this is VERY unsafe for you, please send a patch/pull request :)\n\nIF a security expert is reading these lines, I would like to learn how to avoid this\n\n\nContributing\n============\n\nPatches/pull/feature requests are welcome to improve the code/fix bugs.\nNote I'm quite a busy person, so if you can fix/add it - send me a patch/pull-request.\n\n\nRelated Tools:\n==============\n\n* SeaHorse_\n* LastPass_\n* GNU_Keychain_\n\n\n.. _SeaHorse: https://wiki.gnome.org/Apps/Seahorse\n.. _LastPass: https://lastpass.com\n.. _KeePass: http://keepass.info\n.. _GNU_Keychain: http://www.funtoo.org/Keychain", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mvk/sshadder", "keywords": "setup", "license": "Apache-2", "maintainer": null, "maintainer_email": null, "name": "sshadder", "package_url": "https://pypi.org/project/sshadder/", "platform": null, "project_url": "https://pypi.org/project/sshadder/", "project_urls": { "Homepage": "https://github.com/mvk/sshadder" }, "release_url": "https://pypi.org/project/sshadder/0.3.1/", "requires_dist": null, "requires_python": null, "summary": "Automatic loader of ssh keys", "version": "0.3.1" }, "last_serial": 2901395, "releases": { "0.2.3": [ { "comment_text": "", "digests": { "md5": "5102ff1c56b431fdd2b256814bbe11bd", "sha256": "dd5b9fbeb1c61f99989c2d40c395cc734868fd44e85c1bf378251f70ba5b2f17" }, "downloads": -1, "filename": "sshadder-0.2.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5102ff1c56b431fdd2b256814bbe11bd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8663, "upload_time": "2017-05-25T18:10:43", "url": "https://files.pythonhosted.org/packages/e3/f9/913e2565379cf6637b08d701849463a92250a54e34802b878e1f4ce2c838/sshadder-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a47613c12ab72870e4482e3e3f83303", "sha256": "582c021e7a60a7131cd9d71a778ce3a1db9283bdc734a6816c05aba3f12b6aca" }, "downloads": -1, "filename": "sshadder-0.2.3.tar.gz", "has_sig": true, "md5_digest": "2a47613c12ab72870e4482e3e3f83303", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55504, "upload_time": "2017-05-25T18:10:17", "url": "https://files.pythonhosted.org/packages/da/51/367d20a52290d04d8d44bbde6ddbde23bc56720b4f07240ee430863b9a10/sshadder-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "8b57c13a8153b41704bbb6edd908967f", "sha256": "8380efcc23f3ede56574c4067d5317174674f80c4f2bb763183463f4375216e5" }, "downloads": -1, "filename": "sshadder-0.2.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8b57c13a8153b41704bbb6edd908967f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8667, "upload_time": "2017-05-25T18:21:08", "url": "https://files.pythonhosted.org/packages/34/6b/8ab6b18f2199e5321410e671d572f90465378f4a72b94244d3c8f5ea81a7/sshadder-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d756e55870d57ebe4d5ebb4d083e95a", "sha256": "ae372c591ffcaf41c6c62a71328278d4be775d863c3220b99c4d3380e82b66e7" }, "downloads": -1, "filename": "sshadder-0.2.4.tar.gz", "has_sig": true, "md5_digest": "0d756e55870d57ebe4d5ebb4d083e95a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55524, "upload_time": "2017-05-25T18:20:51", "url": "https://files.pythonhosted.org/packages/0a/a4/be767e154e7fcd2fa1e82a9e88b1b45ce9f507fcb27c57ddb700a8207bda/sshadder-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "951430812d850fde58ccc67730ffb187", "sha256": "143eaf2b7d9a8c28de4f94e41e2325b88dc70314d0efed4dc18ab2551f963b05" }, "downloads": -1, "filename": "sshadder-0.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "951430812d850fde58ccc67730ffb187", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 8938, "upload_time": "2017-05-25T19:09:16", "url": "https://files.pythonhosted.org/packages/30/81/9f1c56523c7590f1529adfcca7dfd101512a39b94868d512ec70dd5dd09b/sshadder-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d754f7d15036720217402a0bfbd6c78", "sha256": "b7d21456618f714380fe49fba267daefe6dcb10466fcc45d56f0e1306eca23c8" }, "downloads": -1, "filename": "sshadder-0.3.0.tar.gz", "has_sig": true, "md5_digest": "3d754f7d15036720217402a0bfbd6c78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55965, "upload_time": "2017-05-25T19:08:57", "url": "https://files.pythonhosted.org/packages/e5/20/97c5cfc30c68f8c0ddce041f11fb3240ec3f23b8a1e2b020ce6fb9268fc0/sshadder-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "1ed1cba1f2dc1a2a4cb9cab159f21f01", "sha256": "93344a753dbb84ba0124c5f464d84030175b0be367af3bf109d1967234dd5d68" }, "downloads": -1, "filename": "sshadder-0.3.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1ed1cba1f2dc1a2a4cb9cab159f21f01", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 9529, "upload_time": "2017-05-26T16:57:09", "url": "https://files.pythonhosted.org/packages/a4/00/f872539119d4e3156d1c79c15fea5457a56aab5a01d88a3a328ba7aee5ac/sshadder-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49f5d61e8784e1145018ffa7eb643dca", "sha256": "0124b71cb57bd3184719de7db183d8880c969f103d3db1125719d637223faecf" }, "downloads": -1, "filename": "sshadder-0.3.1.tar.gz", "has_sig": true, "md5_digest": "49f5d61e8784e1145018ffa7eb643dca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56437, "upload_time": "2017-05-26T16:56:54", "url": "https://files.pythonhosted.org/packages/ef/45/53703d0bc3de6319f89a74c44708dbbf40ee6edf27e7e4be09a498e997f5/sshadder-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1ed1cba1f2dc1a2a4cb9cab159f21f01", "sha256": "93344a753dbb84ba0124c5f464d84030175b0be367af3bf109d1967234dd5d68" }, "downloads": -1, "filename": "sshadder-0.3.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1ed1cba1f2dc1a2a4cb9cab159f21f01", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 9529, "upload_time": "2017-05-26T16:57:09", "url": "https://files.pythonhosted.org/packages/a4/00/f872539119d4e3156d1c79c15fea5457a56aab5a01d88a3a328ba7aee5ac/sshadder-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49f5d61e8784e1145018ffa7eb643dca", "sha256": "0124b71cb57bd3184719de7db183d8880c969f103d3db1125719d637223faecf" }, "downloads": -1, "filename": "sshadder-0.3.1.tar.gz", "has_sig": true, "md5_digest": "49f5d61e8784e1145018ffa7eb643dca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56437, "upload_time": "2017-05-26T16:56:54", "url": "https://files.pythonhosted.org/packages/ef/45/53703d0bc3de6319f89a74c44708dbbf40ee6edf27e7e4be09a498e997f5/sshadder-0.3.1.tar.gz" } ] }