{ "info": { "author": "Takayuki Shimizukawa", "author_email": "shimizukawa@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: MacOS X", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: BSD", "Operating System :: POSIX :: Linux", "Operating System :: Unix", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Utilities" ], "description": "====\nsshh\n====\n\n``sshh`` is an ssh helper tool for batch registration of ssh private keys in ssh-agent.\n\nThe main purpose of sshh is to avoid ``ssh: Too many authentication failures`` that occurs when\nthe number of keys registered in ssh-agent exceeds a certain number. This error occurs when the\nupper limit of key attempts is exceeded when the server is setting the upper limit of private key\nattempts strictly.\n\nThis problem can be avoided by clearing all the keys registered in ssh-agent and registering\nas many as necessary, or entering the passphrase each time. However, in situations where there\nare multiple keys and servers, ssh connections can be very cumbersome. sshh uses Python's\nsubprocess package to start a new ssh-agent, and further calls ssh-add to collectively register\nas many private keys as necessary. This relieves you from the hassle.\n\nUsages\n=======\n\nInit\n-----\n\n::\n\n (.venv) $ sshh-config init\n Enter password for your registry: xxxxx\n The registry file ~/.sshh.registry is created.\n\nChange password\n----------------\n\n::\n\n (.venv) $ sshh-config chpw\n Enter CURRENT password for your registry: xxxxx\n Enter NEW password for your registry: yyyyy\n Enter NEW password again for verification: yyyyy\n Password has been changed.\n\nRegister key\n-------------\n\n::\n\n (.venv) $ sshh-add -g prod ~/id_rsa_server1\n Enter password for your registry: xxxxx\n Enter passphrase for the keyfile: yyyyy\n The keyfile is registered.\n\nList keys\n----------\n\n::\n\n (.venv) $ sshh-add -l\n Enter password for your registry: xxxxx\n [prod]\n /home/user/.ssh/id_rsa_server1\n /home/user/.ssh/id_rsa_server2\n\n [stg]\n /home/user/.ssh/id_rsa_server7\n /home/user/.ssh/id_rsa_server8\n\nInvoke ssh-agent\n-----------------\n\n::\n\n (venv) $ sshh-agent -g prod\n Enter password for your registry: xxxxx\n Enter password for your registry:\n Registering keys for session \"prod\"\n ssh-agent PID=67779 session \"prod\" has been started. To close this session, exit shell.\n [prod] (venv) $\n [prod] (venv) $ exit\n exit\n ssh-agent PID=67779 session \"prod\" has been closed.\n (venv) $\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/shimizukawa/sshh", "keywords": "ssh,utility", "license": "Apache-2.0", "maintainer": "Takayuki Shimizukawa", "maintainer_email": "shimizukawa@gmail.com", "name": "sshh", "package_url": "https://pypi.org/project/sshh/", "platform": "", "project_url": "https://pypi.org/project/sshh/", "project_urls": { "Documentation": "https://github.com/shimizukawa/sshh/blob/master/README.rst", "Homepage": "https://github.com/shimizukawa/sshh", "Repository": "https://github.com/shimizukawa/sshh" }, "release_url": "https://pypi.org/project/sshh/0.10.0/", "requires_dist": [ "cryptography (>=2.6)" ], "requires_python": ">=3.6", "summary": "sshh is an ssh helper tool for batch registration of ssh private keys in ssh-agent", "version": "0.10.0" }, "last_serial": 5348028, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "947be213dc9506a4ba9c812150311533", "sha256": "4a928e24dc033eab3c00894d4be69ff35fa208d67dac68befddb5ac1e2df8b07" }, "downloads": -1, "filename": "sshh-0.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "947be213dc9506a4ba9c812150311533", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13146, "upload_time": "2019-06-02T06:58:02", "url": "https://files.pythonhosted.org/packages/95/c8/9adf45bc26f57a90e618049ecea370111150262c72bd4c34ad872e3ddc87/sshh-0.10.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d328054d886290484505b87f8e45a6d", "sha256": "c55f82be08f0b6af5dddbe56a84c82ea8cdf56455466a701eca8968f3cd2f0af" }, "downloads": -1, "filename": "sshh-0.10.0.tar.gz", "has_sig": false, "md5_digest": "6d328054d886290484505b87f8e45a6d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11352, "upload_time": "2019-06-02T06:58:05", "url": "https://files.pythonhosted.org/packages/9e/1c/e248f46eeaaf72edc87e2d8700a96edec6f8398ec0c49072fc7618b05cbb/sshh-0.10.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "947be213dc9506a4ba9c812150311533", "sha256": "4a928e24dc033eab3c00894d4be69ff35fa208d67dac68befddb5ac1e2df8b07" }, "downloads": -1, "filename": "sshh-0.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "947be213dc9506a4ba9c812150311533", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13146, "upload_time": "2019-06-02T06:58:02", "url": "https://files.pythonhosted.org/packages/95/c8/9adf45bc26f57a90e618049ecea370111150262c72bd4c34ad872e3ddc87/sshh-0.10.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d328054d886290484505b87f8e45a6d", "sha256": "c55f82be08f0b6af5dddbe56a84c82ea8cdf56455466a701eca8968f3cd2f0af" }, "downloads": -1, "filename": "sshh-0.10.0.tar.gz", "has_sig": false, "md5_digest": "6d328054d886290484505b87f8e45a6d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11352, "upload_time": "2019-06-02T06:58:05", "url": "https://files.pythonhosted.org/packages/9e/1c/e248f46eeaaf72edc87e2d8700a96edec6f8398ec0c49072fc7618b05cbb/sshh-0.10.0.tar.gz" } ] }