使用PGP密钥进行SSH

我使用了一个4096字节的RSA PGP密钥; 既然SSH也使用RSA标准,那么是否可以使用PGP密钥作为SSH密钥而不需要在服务器上安装额外的软件(并且尽可能less的在客户端上)呢?

    有几种方式,可能会或可能不会工作:

    • MonkeySphere
    • openssh-gpg ,OpenSSH的补丁
    • SSH.com有内置的支持
    • Debian上的gpgkey2ssh带有一个gpgkey2ssh工具, gpg-agent也可以作为一个ssh代理,但我无法弄清楚如何使ssh使用密钥进行authentication。

    SSH2版本2.0.13引入了对PGPauthentication的支持。

    摘自SSH Secure Shell

    有了这个问题的答案和gnupg-users邮件列表的帮助,我能够弄清楚如何使用我的GPG密钥进行SSHvalidation。 有几个可能的方法来做到这一点。

    我已经写了一些关于一些可能的解决scheme的博客: http : //budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key

    总结一下:要么使用目前处于testing阶段的GnuPG 2.1。 当使用这个版本时,你可以简单地用–enable-ssh-support选项启动gpg-agent,并把你的GPG key(或者子密钥)的keygrip添加到〜/ .gnupg / sshcontrol中。

    当您使用当前稳定的GnuPG版本(2.0.x)时,您可以使用monkeysphere将您的密钥添加到gpg-agent(再次使用–enable-ssh-support选项启动gpg-agent之后)。

    在monkeysphere的帮助下,也可以使用GNOME keyring(甚至是普通的ssh-agent)。 在这种情况下唯一的问题是,当你重新login时(Gnome或者XFCE)你将不得不重新添加你的密钥。 要解决这个问题,你可以手动导出你的密钥并进行转换。

    本文档展示了如何在SSH.com客户端上执行此操作。 我不确定它是否适用于OpenSSH,但可能值得一试。