From 8ffef33a1694d7b9ba4dad0d3f7b0f45d0eee8df Mon Sep 17 00:00:00 2001
From: Scott Duckworth <sduckwo@clemson.edu>
Date: Wed, 26 Mar 2014 11:34:29 -0400
Subject: [PATCH] replace markdown with reStructuredText

---
 README.md            | 144 ------------------------------------------------------------------------------------------------------------------------------------------------
 README.rst           | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.upgrading.md  |  53 -----------------------------------------------------
 README.upgrading.rst |  56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 226 insertions(+), 197 deletions(-)
 delete mode 100644 README.md
 create mode 100644 README.rst
 delete mode 100644 README.upgrading.md
 create mode 100644 README.upgrading.rst

diff --git a/README.md b/README.md
deleted file mode 100644
index 2488e0b..0000000
--- a/README.md
+++ /dev/null
@@ -1,144 +0,0 @@
-# django-sshkey
-
-django-sshkey allows you to associate multiple SSH public keys with Django
-user accounts.  It provides views to list, add, edit, and delete keys, each of
-which is intended for end-user consumption.  It also provides a lookup view
-and corresponding lookup commands that are suitable for use with the
-`AuthorizedKeysCommand` feature in [OpenSSH][1] 6.2 and above.
-
-## The Django app
-
-To use django-sshkey in your Django project, simply add `django_sshkey` to
-`INSTALLED_APPS` in `settings.py`, map the URLs into your project, and provide
-templates for the views (example templates are provided in the source).
-
-In order to associate an incoming public key with a user you must define
-`SSHKEY_AUTHORIZED_KEYS_OPTIONS` in your project's `settings.py`.  This should
-be a string containing options accepted by sshd, with `{username}` being
-replaced with the username of the user associated with the incoming public key.
-
-For instance:
-
-    SSHKEY_AUTHORIZED_KEYS_OPTIONS = 'command="my-command {username}",no-pty'
-
-in settings.py will cause keys produced by the below commands to look similar
-to:
-
-    command="my-command fred",no-pty ssh-rsa AAAAB3NzaC1yc2E...
-
-assuming the key `AAAAB3NzaC1yc2E...` is owned by fred.
-
-### URL Configuration
-
-This text assumes that your project's `urls.py` maps `django_sshkey.urls` into
-the URL namespace as follows:
-
-    import django_sshkey.urls
-    urlpatterns = patterns('',
-      ...
-      url('^sshkey/', include(django_sshkey.urls)),
-      ...
-    )
-
-You will need to adjust your URLs in the examples below if you use a different
-mapping.
-
-**WARNING**: The `/sshkey/lookup` URL can expose all public keys that have
-been uploaded to your site.  Although they are public keys, it is probably a
-good idea to limit what systems can access this URL via your web server's
-configuration (most of the lookup methods below require access to this URL).
-
-## Tying OpenSSH to django-sshkey
-
-There are multiple methods of connecting OpenSSH to django-sshkey.  All of the
-methods listed here require the use of the `AuthorizedKeysCommand` directive
-in `sshd_config` present in OpenSSH 6.2 and above.  Please note that the
-command that is referenced by this directive and its ancestor directories must
-be owned by root and writable only by owner.
-
-Unless otherwise stated, all of the methods below use the `SSHKEY_LOOKUP_URL`
-environment variable to determine the URL of the `/sshkey/lookup` URL.  If
-this environment variable is not defined then it will default to
-`http://localhost:8000/sshkey/lookup`.  If this environment variable is
-defined in the sshd process then it will be inherited by the
-`AuthorizedKeysCommand`.
-
-Additionally, all of the methods below use either `curl` (preferred) or `wget`.
-Some commands also use `ssh-keygen`.  These commands must be present in `PATH`.
-
-If you would prefer not to use these external commands then there are variants
-of these commands implemented purely in Python.  However, they are *much*
-slower.  To use the variants, replace `lookup` with `pylookup`.  For example,
-use `django-sshkey-pylookup-all` instead of `django-sshkey-lookup-all`.
-
-### Using `django-sshkey-lookup-all`
-
-`Usage: django-sshkey-lookup-all`
-
-This program prints all SSH public keys that are defined on your site.  sshd
-will have to scan through all of them to find the first match, so with many
-keys this method will be slow.  However, it does not require a patched OpenSSH
-server.
-
-This program:
-
-  * can be used directly with `AuthorizedKeysCommand` (the username parameter
-    is ignored).
-  * does not require a patched OpenSSH server.
-  * does not scale well to a large number of user keys.
-
-### Using `django-sshkey-lookup-by-username`
-
-`Usage: django-sshkey-lookup-by-username USERNAME`
-
-This program prints all SSH public keys that are associated with the specified
-user.
-
-This program:
-
-  * can be used directly with `AuthorizedKeysCommand`.
-  * does not require a patched OpenSSH server.
-  * is ideal if each Django user corresponds to a system user account.
-
-### Using `django-sshkey-lookup-by-fingerprint`
-
-`Usage: django-sshkey-lookup-by-fingerprint`
-
-This program prints all SSH public keys that match the given fingerprint.  The
-fingerprint is determined by the first of the following conditions that is met:
-
-  1. The `SSH_KEY_FINGERPRINT` environment variable, which should contain the
-     MD5 fingerprint of the key (this is what is generated by `ssh-keygen -l`).
-  2. The `SSH_KEY` environment variable, which should contain the key in
-     standard openssh format (the same format as `~/.ssh/id_rsa.pub`), is sent
-     to `ssh-keygen -l` to determine the fingerprint.
-  3. The key in standard openssh format is read from standard input and is
-     sent to `ssh-keygen -l` to determine the fingerprint.
-
-This program:
-
-  * can be used directly with `AuthorizedKeysCommand` (the username parameter
-    is ignored).
-  * requires a patched OpenSSH server; compatible patches can be found at one
-    of the following locations:
-      * [openssh-akcenv][2] (this is the preferred patch)
-      * [openssh-stdinkey][3]
-  * is ideal if you want all Django users to access SSH via a shared system
-    user account and be identified by their SSH public key.
-
-### Using `django-sshkey-lookup`
-
-`Usage: django-sshkey-lookup URL [USERNAME]`
-
-This program is a wrapper around the previous two commands.  The first
-parameter is placed in the `SSHKEY_LOOKUP_URL` environment variable.  If the
-second parameter is present then `django-sshkey-lookup-by-username` is
-executed; otherwise `django-sshkey-lookup-by-fingerprint` is executed.
-
-This command is compatible with the old script `lookup.sh` but was renamed to
-have a less ambiguous name when installed system-wide. A symlink is left in
-its place for backwards compatibility.
-
-[1]: http://www.openssh.com/
-[2]: https://github.com/ScottDuckworth/openssh-akcenv
-[3]: https://github.com/ScottDuckworth/openssh-stdinkey
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..8cc327d
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,170 @@
+=============
+django-sshkey
+=============
+
+django-sshkey allows you to associate multiple SSH public keys with Django
+user accounts.  It provides views to list, add, edit, and delete keys, each of
+which is intended for end-user consumption.  It also provides a lookup view
+and corresponding lookup commands that are suitable for use with the
+``AuthorizedKeysCommand`` feature in OpenSSH_ 6.2 and above.
+
+The Django app
+==============
+
+To use django-sshkey in your Django project, simply add ``django_sshkey`` to
+``INSTALLED_APPS`` in ``settings.py``, map the URLs into your project, and
+provide templates for the views (example templates are provided in the source).
+
+In order to associate an incoming public key with a user you must define
+``SSHKEY_AUTHORIZED_KEYS_OPTIONS`` in your project's ``settings.py``.  This
+should be a string containing options accepted by sshd, with ``{username}``
+being replaced with the username of the user associated with the incoming
+public key.
+
+For instance::
+
+  SSHKEY_AUTHORIZED_KEYS_OPTIONS = 'command="my-command {username}",no-pty'
+
+in settings.py will cause keys produced by the below commands to look similar
+to::
+
+  command="my-command fred",no-pty ssh-rsa AAAAB3NzaC1yc2E...
+
+assuming the key ``AAAAB3NzaC1yc2E...`` is owned by fred.
+
+URL Configuration
+-----------------
+
+This text assumes that your project's ``urls.py`` maps ``django_sshkey.urls``
+into the URL namespace as follows::
+
+  import django_sshkey.urls
+  urlpatterns = patterns('',
+    ...
+    url('^sshkey/', include(django_sshkey.urls)),
+    ...
+  )
+
+You will need to adjust your URLs in the examples below if you use a different
+mapping.
+
+.. WARNING::
+
+  The ``/sshkey/lookup`` URL can expose all public keys that have
+  been uploaded to your site.  Although they are public keys, it is probably a
+  good idea to limit what systems can access this URL via your web server's
+  configuration.  Most of the lookup methods below require access to this URL,
+  and only the systems that need to run the lookup commands should have access
+  to it.
+
+Tying OpenSSH to django-sshkey
+==============================
+
+There are multiple methods of connecting OpenSSH to django-sshkey.  All of the
+methods listed here require the use of the ``AuthorizedKeysCommand`` directive
+in ``sshd_config`` present in OpenSSH 6.2 and above.  Please note that the
+command that is referenced by this directive and its ancestor directories must
+be owned by root and writable only by owner.
+
+Unless otherwise stated, all of the methods below use the ``SSHKEY_LOOKUP_URL``
+environment variable to determine the URL of the ``/sshkey/lookup`` URL.  If
+this environment variable is not defined then it will default to
+``http://localhost:8000/sshkey/lookup``.  If this environment variable is
+defined in the sshd process then it will be inherited by the
+``AuthorizedKeysCommand``.
+
+Additionally, all of the methods below use either ``curl`` (preferred) or
+``wget``.  Some commands also use ``ssh-keygen``.  These commands must be
+present in ``PATH``.
+
+If you would prefer not to use these external commands then there are variants
+of the lookup commands implemented purely in Python.  However, they are *much*
+slower.  To use the variants, replace ``lookup`` with ``pylookup``.  For
+example, use ``django-sshkey-pylookup-all`` instead of
+``django-sshkey-lookup-all``.
+
+Using ``django-sshkey-lookup-all``
+----------------------------------
+
+``Usage: django-sshkey-lookup-all``
+
+This program prints all SSH public keys that are defined on your site.  sshd
+will have to scan through all of them to find the first match, so with many
+keys this method will be slow.  However, it does not require a patched OpenSSH
+server.
+
+This program:
+
+  * can be used directly with ``AuthorizedKeysCommand`` (the username
+    parameter is ignored).
+
+  * does not require a patched OpenSSH server.
+
+  * does not scale well to a large number of user keys.
+
+Using ``django-sshkey-lookup-by-username``
+------------------------------------------
+
+``Usage: django-sshkey-lookup-by-username USERNAME``
+
+This program prints all SSH public keys that are associated with the specified
+user.
+
+This program:
+
+  * can be used directly with ``AuthorizedKeysCommand``.
+
+  * does not require a patched OpenSSH server.
+
+  * is ideal if each Django user corresponds to a system user account.
+
+Using ``django-sshkey-lookup-by-fingerprint``
+---------------------------------------------
+
+``Usage: django-sshkey-lookup-by-fingerprint``
+
+This program prints all SSH public keys that match the given fingerprint.  The
+fingerprint is determined by the first of the following that is found:
+
+  1. The ``SSH_KEY_FINGERPRINT`` environment variable, which should contain
+     the MD5 fingerprint of the key (this is the second field generated by
+     ``ssh-keygen -l``).
+
+  2. The ``SSH_KEY`` environment variable, which should contain the key in
+     standard openssh format (the same format as ``~/.ssh/id_rsa.pub``), is
+     sent to ``ssh-keygen -l`` to determine the fingerprint.
+
+  3. The key in standard openssh format is read from standard input and is
+     sent to ``ssh-keygen -l`` to determine the fingerprint.
+
+This program:
+
+  * can be used directly with ``AuthorizedKeysCommand`` (the username
+    parameter is ignored).
+
+  * requires a patched OpenSSH server; compatible patches can be found at one
+    of the following locations:
+
+      - openssh-akcenv_ (this is the preferred patch)
+      - openssh-stdinkey_
+
+  * is ideal if you want all Django users to access SSH via a shared system
+    user account and be identified by their SSH public key.
+
+Using ``django-sshkey-lookup``
+------------------------------
+
+``Usage: django-sshkey-lookup URL [USERNAME]``
+
+This program is a wrapper around the previous two commands.  The first
+parameter is placed in the ``SSHKEY_LOOKUP_URL`` environment variable.  If the
+second parameter is present then ``django-sshkey-lookup-by-username`` is
+executed; otherwise ``django-sshkey-lookup-by-fingerprint`` is executed.
+
+This command is compatible with the old script ``lookup.sh`` but was renamed
+to have a less ambiguous name when installed system-wide. A symlink is left in
+its place for backwards compatibility.
+
+.. _OpenSSH: http://www.openssh.com/
+.. _openssh-akcenv: https://github.com/ScottDuckworth/openssh-akcenv
+.. _openssh-stdinkey: https://github.com/ScottDuckworth/openssh-stdinkey
diff --git a/README.upgrading.md b/README.upgrading.md
deleted file mode 100644
index 78a048c..0000000
--- a/README.upgrading.md
+++ /dev/null
@@ -1,53 +0,0 @@
-Upgrading and Downgrading
-=========================
-
-django-sshkey is equipped with [South][1] migrations.  This makes changes to
-the database schema in upgrades or downgrades a simple process.  Migrations
-will only be present on minor version changes.
-
-To use South migrations, you must have the south app in your project's
-INSTALLED_APPS.
-
-The following table maps django-sshkey version to migration labels:
-
-    Version   App Name        Label   Notes
-    1.0.x     sshkey          0001    Migrations were not present in 1.0.x
-    1.1.x     sshkey          0002
-    2.0.x     django_sshkey   0001    See Upgrading from 1.1.x to 2.x below
-
-
-To upgrade, install the new version of django-sshkey and then migrate your
-project to its corresponding label from the table above using the following
-command:
-
-    python manage.py migrate <app_name> <label>
-
-To downgrade, perform the migration down to the label of the desired version
-before installing the older django-sshkey.
-
-
-Upgrading from 1.1.x to 2.x
----------------------------
-
-django-sshkey 2.x renames the sshkey app to django_sshkey.  However, the
-database table names are not changed.
-
-To upgrade, all references to the sshkey module must be changed to
-django_sshkey.  This includes all instances of "import sshkey" or
-"from sshkey import ..." and all references to sshkey in url patterns, views,
-or templates, as well as updating INSTALLED_APPS in settings.py.
-
-Once you have made those changes you will need to fake the initial migration
-for django_sshkey:
-
-    python manage.py migrate --fake django_sshkey 0001_initial
-
-This completes the upgrade process.  The only thing that remains is the two
-existing migration records in the south_migrationhistory table from the now
-nonexistent sshkey app.  These records do not cause any problems, but they can
-be removed at your discrection using the following SQL statement on your
-database:
-
-    DELETE FROM south_migrationhistory WHERE app_name="sshkey";
-
-[1]: http://south.aeracode.org/
diff --git a/README.upgrading.rst b/README.upgrading.rst
new file mode 100644
index 0000000..061db44
--- /dev/null
+++ b/README.upgrading.rst
@@ -0,0 +1,56 @@
+Upgrading and Downgrading
+=========================
+
+django-sshkey is equipped with South_ migrations.  This makes changes to the
+database schema in upgrades or downgrades a simple process.  Migrations will
+only be present on minor version changes.
+
+To use South migrations, you must have the south app in your project's
+``INSTALLED_APPS``.
+
+The following table maps django-sshkey version to migration labels:
+
++---------+---------------+-------+------------------------------------------+
+| Version | App Name      | Label | Notes                                    |
++=========+===============+=======+==========================================+
+| 1.0     | sshkey        | 0001  | Migrations were not present in 1.0.x     |
++---------+---------------+-------+------------------------------------------+
+| 1.1     | sshkey        | 0002  |                                          |
++---------+---------------+-------+------------------------------------------+
+| 2.0+    | django_sshkey | 0001  | See Upgrading from 1.1.x to 2.x below    |
++---------+---------------+-------+------------------------------------------+
+
+To upgrade, install the new version of django-sshkey and then migrate your
+project to its corresponding label from the table above using the following
+command::
+
+  python manage.py migrate APP_NAME LABEL
+
+To downgrade, perform the migration down to the label of the desired version
+before installing the older django-sshkey.
+
+Upgrading from 1.1.x to 2.x
+---------------------------
+
+django-sshkey 2.x renames the sshkey app to django_sshkey.  However, the
+database table names are not changed.
+
+To upgrade, all references to the sshkey module must be changed to
+django_sshkey.  This includes all instances of ``import sshkey`` or
+``from sshkey import ...`` and all references to sshkey in URL patterns,
+views, or templates, as well as updating ``INSTALLED_APPS`` in ``settings.py``.
+
+Once you have made those changes you will need to fake the initial migration
+for django_sshkey::
+
+  python manage.py migrate --fake django_sshkey 0001_initial
+
+This completes the upgrade process.  The only thing that remains is the two
+existing migration records in the ``south_migrationhistory`` table from the
+now nonexistent sshkey app.  These records do not cause any problems, but they
+can be removed at your discrection using the following SQL statement on your
+database::
+
+  DELETE FROM south_migrationhistory WHERE app_name="sshkey";
+
+.. _South: http://south.aeracode.org/
--
libgit2 0.26.0