geofront-auth / geofront

Simple SSH key management service
https://geofront.readthedocs.io/
GNU Affero General Public License v3.0
347 stars 37 forks source link
geofront python ssh ssh-key

Geofront

.. image:: https://badges.gitter.im/spoqa/geofront.svg :alt: Join the chat at https://gitter.im/spoqa/geofront :target: https://gitter.im/spoqa/geofront?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

.. image:: https://badge.fury.io/py/Geofront.svg? :target: https://pypi.python.org/pypi/Geofront :alt: Latest PyPI version

.. image:: https://readthedocs.org/projects/geofront/badge/ :target: https://geofront.readthedocs.io/ :alt: Read the Docs

.. image:: https://travis-ci.org/spoqa/geofront.svg?branch=master :target: https://travis-ci.org/spoqa/geofront

.. image:: https://codecov.io/gh/spoqa/geofront/branch/master/graph/badge.svg :target: https://codecov.io/gh/spoqa/geofront

Geofront is a simple SSH key management server. It helps to maintain servers to SSH, and authorized_keys list for them. Read the docs__ for more details.

__ https://geofront.readthedocs.io/

Situations

Idea

  1. Geofront has its own master key. The private key is never shared. The master key is periodically and automatically regened.
  2. Every server has a simple authorized_keys list, which authorizes only the master key.
  3. Every member registers their own public key to Geofront. The registration can be omitted if the key storage is GitHub, Bitbucket, etc.
  4. A member requests to SSH a server, then Geofront temporarily (about 30 seconds, or a minute) adds their public key to authorized_keys of the requested server.

Prerequisites

.. _Paramiko: http://www.paramiko.org/ .. _cryptography: https://cryptography.io/ .. _Werkzeug: http://werkzeug.pocoo.org/ .. _Flask: http://flask.pocoo.org/ .. _Flask-Sockets: https://github.com/kennethreitz/flask-sockets .. _gevent: http://www.gevent.org/ .. _OAuthLib: https://github.com/idan/oauthlib .. _Libcloud: http://libcloud.apache.org/ .. _singledispatch: https://pypi.python.org/pypi/singledispatch .. _typing: https://pypi.python.org/pypi/typing .. _typeguard: https://github.com/agronholm/typeguard

Author and license

Geofront is written by Hong Minhee, maintained by Spoqa, and licensed under AGPL3 or later. You can find the source code from GitHub:

.. code-block:: console

$ git clone git://github.com/spoqa/geofront.git

https://hongminhee.org/ .. _Spoqa: http://www.spoqa.com/ .. _AGPL3: http://www.gnu.org/licenses/agpl-3.0.html https://github.com/spoqa/geofront

Missing features

(Contributions would be appreciated!)

.. _Fabric: http://www.fabfile.org/ .. PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/ .. #3: https://github.com/spoqa/geofront/issues/3