Setup ssh_fingerprints grain
diff --git a/_grains/ssh_fingerprints.py b/_grains/ssh_fingerprints.py
new file mode 100644
index 0000000..3fe5438
--- /dev/null
+++ b/_grains/ssh_fingerprints.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+import base64
+import hashlib
+
+
+def main():
+    host_keys = {
+        'rsa': '/etc/ssh/ssh_host_rsa_key.pub',
+        'dsa': '/etc/ssh/ssh_host_dsa_key.pub',
+        'ecdsa': '/etc/ssh/ssh_host_ecdsa_key.pub',
+    }
+
+    ssh_fingerprints = {}
+    for key_type, filename in host_keys.iteritems():
+        try:
+            ssh_fingerprints[key_type] = _get_ssh_fingerprint(filename)
+        except IOError:
+            pass
+
+    if ssh_fingerprints:
+        return {
+            'ssh_fingerprints': ssh_fingerprints
+        }
+    else:
+        return None
+
+
+def _get_ssh_fingerprint(filename):
+    with open(filename, 'r') as fh:
+        key = base64.b64decode(fh.read().strip().split()[1].encode('ascii'))
+    fp_plain = hashlib.md5(key).hexdigest()
+    return ':'.join(a+b for a, b in zip(fp_plain[::2], fp_plain[1::2]))