diff --git a/sshkey/models.py b/sshkey/models.py
index 06c65f6..959f7e0 100644
--- a/sshkey/models.py
+++ b/sshkey/models.py
@@ -1,11 +1,11 @@
 from django.db import models
 from django.contrib.auth.models import User
 from django.core.exceptions import ValidationError
-from sshkey.util import sshkey_fingerprint
+from sshkey.util import sshkey_fingerprint, sshkey_re
 
 class UserKey(models.Model):
   user = models.ForeignKey(User, db_index=True)
-  name = models.CharField(max_length=50)
+  name = models.CharField(max_length=50, blank=True)
   key = models.TextField(max_length=2000)
   fingerprint = models.CharField(max_length=47, blank=True, db_index=True)
 
@@ -28,6 +28,12 @@ class UserKey(models.Model):
       self.fingerprint = sshkey_fingerprint(self.key)
     except Exception, e:
       raise ValidationError('Not a valid SSH key: ' + str(e))
+    if not self.name:
+      m = sshkey_re.match(self.key)
+      comment = m.group('comment')
+      if not comment:
+        raise ValidationError('Name or key comment required')
+      self.name = comment
 
   def validate_unique(self, exclude=None):
     if self.pk is None: