I don't like that we call write 3 times.

```
def store(self, public_file=None, private_file=None, comment='no-comment'):

if public_file:
  public_content = '%s %s' % (self.public_openssh, comment.encode('utf-8'))
  public_file.write(public_content)
```

I don't know if the default comment will do any harm... hope not.

I think that public_openssh is already encoded and this is why I encode the comment when generating the public_content and not before writing.

-------

The problem is that self.public_openssh and private_openssh  are not Unicode strings and this makes this code looks more complicated.