{ "info": { "author": "Spoqa", "author_email": "dev@spoqa.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: System :: Systems Administration :: Authentication/Directory" ], "description": "Geofront\n========\n\n.. image:: https://badges.gitter.im/spoqa/geofront.svg\n :alt: Join the chat at https://gitter.im/spoqa/geofront\n :target: https://gitter.im/spoqa/geofront?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\n.. image:: https://badge.fury.io/py/Geofront.svg?\n :target: https://pypi.python.org/pypi/Geofront\n :alt: Latest PyPI version\n\n.. image:: https://readthedocs.org/projects/geofront/badge/\n :target: https://geofront.readthedocs.io/\n :alt: Read the Docs\n\n.. image:: https://travis-ci.org/spoqa/geofront.svg?branch=master\n :target: https://travis-ci.org/spoqa/geofront\n\n.. image:: https://codecov.io/gh/spoqa/geofront/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/spoqa/geofront\n\nGeofront is a simple SSH key management server. It helps to maintain servers\nto SSH, and ``authorized_keys`` list for them. `Read the docs`__ for more\ndetails.\n\n__ https://geofront.readthedocs.io/\n\n\nSituations\n----------\n\n- If the team maintains ``authorized_keys`` list of all servers owned\n by the team:\n\n - When someone joins or leaves the team, all lists have to be updated.\n - *Who* do update the list?\n\n- If the team maintains shared private keys to SSH servers:\n\n - These keys have to be expired when someone leaves the team.\n - There should be a shared storage for the keys. (Dropbox? srsly?)\n - Everyone might need to add ``-i`` option to use team's own key.\n\n- The above ways are both hard to scale servers. Imagine your team\n has more than 10 servers.\n\n\nIdea\n----\n\n1. Geofront has its own *master key*. The private key is never shared.\n The master key is periodically and automatically regened.\n2. Every server has a simple ``authorized_keys`` list, which authorizes\n only the master key.\n3. Every member registers their own public key to Geofront.\n The registration can be omitted if the key storage is GitHub, Bitbucket,\n etc.\n4. A member requests to SSH a server, then Geofront *temporarily*\n (about 30 seconds, or a minute) adds their public key to ``authorized_keys``\n of the requested server.\n\n\nPrerequisites\n-------------\n\n- Linux, BSD, Mac\n- Python 3.3+\n- Third-party packages (automatically installed together)\n\n - Paramiko_ 2.0.1+ (which requires cryptography_)\n - Werkzeug_ 0.11+\n - Flask_ 0.10.1+\n - OAuthLib_ 1.1.1+\n - Apache Libcloud_ 1.1.0+\n - Waitress_ 1.0.2+\n - singledispatch_ (only if Python is older than 3.4)\n - typing_ (only if Python is older than 3.5)\n - typeguard_ 2.1.1+\n\n.. _Paramiko: http://www.paramiko.org/\n.. _cryptography: https://cryptography.io/\n.. _Werkzeug: http://werkzeug.pocoo.org/\n.. _Flask: http://flask.pocoo.org/\n.. _OAuthLib: https://github.com/idan/oauthlib\n.. _Libcloud: http://libcloud.apache.org/\n.. _Waitress: https://github.com/Pylons/waitress\n.. _singledispatch: https://pypi.python.org/pypi/singledispatch\n.. _typing: https://pypi.python.org/pypi/typing\n.. _typeguard: https://github.com/agronholm/typeguard\n\n\nAuthor and license\n------------------\n\nGeofront is written by `Hong Minhee`__, maintained by Spoqa_, and licensed\nunder AGPL3_ or later. You can find the source code from GitHub__:\n\n.. code-block:: console\n\n $ git clone git://github.com/spoqa/geofront.git\n\n\n__ https://hongminhee.org/\n.. _Spoqa: http://www.spoqa.com/\n.. _AGPL3: http://www.gnu.org/licenses/agpl-3.0.html\n__ https://github.com/spoqa/geofront\n\n\nMissing features\n----------------\n\n- Google Apps backend [`#3`_]\n- Fabric_ integration\n- PuTTY_ integration\n\n(Contributions would be appreciated!)\n\n.. _Fabric: http://www.fabfile.org/\n.. _PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/\n.. _#3: https://github.com/spoqa/geofront/issues/3\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/spoqa/geofront", "keywords": "", "license": "AGPLv3 or later", "maintainer": "", "maintainer_email": "", "name": "Geofront", "package_url": "https://pypi.org/project/Geofront/", "platform": "", "project_url": "https://pypi.org/project/Geofront/", "project_urls": { "Homepage": "https://github.com/spoqa/geofront" }, "release_url": "https://pypi.org/project/Geofront/0.4.0/", "requires_dist": null, "requires_python": "", "summary": "Simple SSH key management service", "version": "0.4.0" }, "last_serial": 2741065, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "01da702397ded0a3671f07224e52270c", "sha256": "d8acde19b944cb96e0b8cdf69abb8453025484e0ea59f93929fbaca484f4cc14" }, "downloads": -1, "filename": "Geofront-0.1.0-py3-none-any.whl", "has_sig": true, "md5_digest": "01da702397ded0a3671f07224e52270c", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 29346, "upload_time": "2014-04-20T15:20:25", "url": "https://files.pythonhosted.org/packages/0d/3a/6db7d37464f84757eedfbfbc7b88360f381578fae2f308006daa8ccc9501/Geofront-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d4def757ebc3b4c372451a78c24185e", "sha256": "4eaa8a17bbe6e43a388909d5c2ee523a62b7c93235ed1ddee65a0ad193b64f3c" }, "downloads": -1, "filename": "Geofront-0.1.0.tar.gz", "has_sig": true, "md5_digest": "8d4def757ebc3b4c372451a78c24185e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22573, "upload_time": "2014-04-20T15:20:21", "url": "https://files.pythonhosted.org/packages/82/bd/9dd5f7e21cf462e4557aa4baae951565bf5af77c55965e6ad283ef22c6a0/Geofront-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "76ee2e866a63a98d62862d482d77c15a", "sha256": "0e61c8913f8431af36a4b979066d944e6e6579a6fe2cdf4ee1c06d0815ccdc5a" }, "downloads": -1, "filename": "Geofront-0.1.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "76ee2e866a63a98d62862d482d77c15a", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 30137, "upload_time": "2014-04-22T11:18:19", "url": "https://files.pythonhosted.org/packages/ac/9a/2bdf14176a415a6c8600f82946842274d6fd23e882fea43ee8e5cea0d294/Geofront-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ce66d14ec62b3654da0c69ab28c094d", "sha256": "c61b5d9ed60186dbcef1f8a2d87496b8b6c8eed034ee0f0bb8b670ab66d97ba7" }, "downloads": -1, "filename": "Geofront-0.1.1.tar.gz", "has_sig": true, "md5_digest": "1ce66d14ec62b3654da0c69ab28c094d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23344, "upload_time": "2014-04-22T11:18:16", "url": "https://files.pythonhosted.org/packages/66/e9/8571f53851c4e646578367e47ba2243bb56ba92f027fea692e7a891de5ca/Geofront-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0452b5c5170549a896c95561186d6a7b", "sha256": "8704fbd79911f7e469becb7d2b61d9be7ce604b6de8b07c1d5c2ede66308a8d5" }, "downloads": -1, "filename": "Geofront-0.2.0-py3-none-any.whl", "has_sig": true, "md5_digest": "0452b5c5170549a896c95561186d6a7b", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 44921, "upload_time": "2014-05-03T08:11:59", "url": "https://files.pythonhosted.org/packages/53/44/b29adc108cc358068d8f5e5e5a4b05c4e466c4fe5e4b21fcf8e7057d0478/Geofront-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f5898ddbcecf40c9a328d9cdc934030", "sha256": "9ee4b8f7e69655932f901b6a7a0438ac86acf00a7414a44725f1479296120f27" }, "downloads": -1, "filename": "Geofront-0.2.0.tar.gz", "has_sig": true, "md5_digest": "1f5898ddbcecf40c9a328d9cdc934030", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32692, "upload_time": "2014-05-03T08:11:55", "url": "https://files.pythonhosted.org/packages/28/52/57cfc8672a9795d4bf66b08f70861d039a2bb7527a2a457b71335873efe0/Geofront-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "15efd9655fd6ecdc17cc8ec53504850e", "sha256": "aa09ccd9894d9470a95fae982ae94fc91888523f39c2de56d0ba681b63ad9ebb" }, "downloads": -1, "filename": "Geofront-0.2.1-py3-none-any.whl", "has_sig": true, "md5_digest": "15efd9655fd6ecdc17cc8ec53504850e", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 42404, "upload_time": "2014-06-16T07:23:37", "url": "https://files.pythonhosted.org/packages/d0/4d/3dc0bfa48b1e950a0fdf4446a361ce2dbd741746bb4e568c4f011da0bf9a/Geofront-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64a7cad23fd6cd1f9a77fef2228d7898", "sha256": "1b30300236d040123ab09418db368d7e913b5e6d280f2490144f57a2ae11b5be" }, "downloads": -1, "filename": "Geofront-0.2.1.tar.gz", "has_sig": true, "md5_digest": "64a7cad23fd6cd1f9a77fef2228d7898", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32862, "upload_time": "2014-06-16T07:23:34", "url": "https://files.pythonhosted.org/packages/d6/a9/63d09b85577c81374ee4025eb10e10bea3bf64e016e5f9dd27fb5751ba91/Geofront-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b439011163bb39b653dea7ed1d536329", "sha256": "a520b1a59d609e20c09cf6460db746dd3182c778a5caa42e237148a4d3d76c34" }, "downloads": -1, "filename": "Geofront-0.2.2-py3-none-any.whl", "has_sig": true, "md5_digest": "b439011163bb39b653dea7ed1d536329", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 42977, "upload_time": "2014-07-08T05:40:18", "url": "https://files.pythonhosted.org/packages/6b/db/e3cc4ea8a043e21c196efd9913ce57c72ef62f4680b6f4c080debcee8794/Geofront-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49176ce076524d09aea9e504d4cadefe", "sha256": "f512122fb1a62cbef0cdc183d9eb4fa4c3488663b7b75c6bd088b367c090aed5" }, "downloads": -1, "filename": "Geofront-0.2.2.tar.gz", "has_sig": true, "md5_digest": "49176ce076524d09aea9e504d4cadefe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33445, "upload_time": "2014-07-08T05:40:14", "url": "https://files.pythonhosted.org/packages/9c/66/27db657880a8a09b60384402d0096946aa0c417ba01eae65c4ec0f6064b3/Geofront-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d85bf05f26fac44693b8b513ae0a4585", "sha256": "2725cc69b38f7568d2cc8d2ac9f5d044da81878fe81a5433200282c182662dc5" }, "downloads": -1, "filename": "Geofront-0.3.0-py3-none-any.whl", "has_sig": true, "md5_digest": "d85bf05f26fac44693b8b513ae0a4585", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 47052, "upload_time": "2016-01-14T15:04:56", "url": "https://files.pythonhosted.org/packages/79/4b/0efef4a1384aee20b6e6bbc8deb7a8b6f02d53afcd85566f31e1e7c62e95/Geofront-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8955d70f03777cfef2801be23edbfd21", "sha256": "85138db3ea79752450d7cbaac0aefea719f65c93476c3e199474ca0417de4cc4" }, "downloads": -1, "filename": "Geofront-0.3.0.tar.gz", "has_sig": true, "md5_digest": "8955d70f03777cfef2801be23edbfd21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36589, "upload_time": "2016-01-14T15:04:33", "url": "https://files.pythonhosted.org/packages/0d/da/1bea1e40270aea1e66a5ca7a03301e75d96c3a6eb27eb67534fd16777d1b/Geofront-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "30ea4e4181b261796cef984cd454085a", "sha256": "68a45c41c7a04f3f587641cb8cfda1f46bd7e3127aa7935b23d402cb2103dbc1" }, "downloads": -1, "filename": "Geofront-0.3.1-py3-none-any.whl", "has_sig": true, "md5_digest": "30ea4e4181b261796cef984cd454085a", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 58209, "upload_time": "2016-01-19T05:54:12", "url": "https://files.pythonhosted.org/packages/13/fe/80bfa0195553281f1bfbfc32b44407dce3bc71a4500c600dfff44497eb84/Geofront-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a02c90f93c45bea8c2382a58c6137147", "sha256": "2a58025ad3c40436ea5e28fe700441df95b09224b83c0bca1f30e6810f96a700" }, "downloads": -1, "filename": "Geofront-0.3.1.tar.gz", "has_sig": true, "md5_digest": "a02c90f93c45bea8c2382a58c6137147", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37357, "upload_time": "2016-01-19T05:53:59", "url": "https://files.pythonhosted.org/packages/df/f9/acbb7969e5e09f8f9d95caeeee8fd0bfb434113b2af30a055f078ca046db/Geofront-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "67cf514604215584049f4fbbf266c857", "sha256": "6986cc44cb18edb4bf8f9f2fd0a021ac776baa25bdda6fa506cf49efba5f3d28" }, "downloads": -1, "filename": "Geofront-0.3.2-py3-none-any.whl", "has_sig": true, "md5_digest": "67cf514604215584049f4fbbf266c857", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 58855, "upload_time": "2016-03-06T21:22:51", "url": "https://files.pythonhosted.org/packages/3e/2f/5f0644f3e652cca3467bf9c810c98c61cecab7b2412088ed4116e95952d2/Geofront-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "695136dfd773216ea0cd7053fa3af5af", "sha256": "9d8a242d28616e3212a11069e5d9e4a7712b64be6811edef31b5be082f0bab73" }, "downloads": -1, "filename": "Geofront-0.3.2.tar.gz", "has_sig": true, "md5_digest": "695136dfd773216ea0cd7053fa3af5af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37956, "upload_time": "2016-03-06T21:22:36", "url": "https://files.pythonhosted.org/packages/45/2e/3289726588128f08374b511ed56a72e01de5cd98589755c695083f27c7fe/Geofront-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "435bac7314c0abdca0ce4458cb944b6e", "sha256": "40319668985f080f814fa2dfcd04704d89134849f4dac6ccd6cb88442c397596" }, "downloads": -1, "filename": "Geofront-0.4.0-py3-none-any.whl", "has_sig": true, "md5_digest": "435bac7314c0abdca0ce4458cb944b6e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 55995, "upload_time": "2017-03-30T11:56:19", "url": "https://files.pythonhosted.org/packages/bd/ea/1b2f6d36a5b96c9f184457f92f6bc6124845b8f2d99a40f094eb1221fc77/Geofront-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58937b4392ac1fc67a7c8822f1051163", "sha256": "073e1e96466e5a62a6a56a7fc5a837a5d99e3000b1f70e9deba4234114d750f9" }, "downloads": -1, "filename": "Geofront-0.4.0.tar.gz", "has_sig": true, "md5_digest": "58937b4392ac1fc67a7c8822f1051163", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43223, "upload_time": "2017-03-30T11:56:15", "url": "https://files.pythonhosted.org/packages/c6/5b/b0f7c6ee0764b1cd6532cc85e8dbaad2a7668b1ae314591a974fdb219c5b/Geofront-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "435bac7314c0abdca0ce4458cb944b6e", "sha256": "40319668985f080f814fa2dfcd04704d89134849f4dac6ccd6cb88442c397596" }, "downloads": -1, "filename": "Geofront-0.4.0-py3-none-any.whl", "has_sig": true, "md5_digest": "435bac7314c0abdca0ce4458cb944b6e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 55995, "upload_time": "2017-03-30T11:56:19", "url": "https://files.pythonhosted.org/packages/bd/ea/1b2f6d36a5b96c9f184457f92f6bc6124845b8f2d99a40f094eb1221fc77/Geofront-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58937b4392ac1fc67a7c8822f1051163", "sha256": "073e1e96466e5a62a6a56a7fc5a837a5d99e3000b1f70e9deba4234114d750f9" }, "downloads": -1, "filename": "Geofront-0.4.0.tar.gz", "has_sig": true, "md5_digest": "58937b4392ac1fc67a7c8822f1051163", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43223, "upload_time": "2017-03-30T11:56:15", "url": "https://files.pythonhosted.org/packages/c6/5b/b0f7c6ee0764b1cd6532cc85e8dbaad2a7668b1ae314591a974fdb219c5b/Geofront-0.4.0.tar.gz" } ] }