如何使用ssh公钥对gpg进行加密?
我在一个名为如何使用ssh公钥对gpg进行加密?,ssh,public-key-encryption,gnupg,Ssh,Public Key Encryption,Gnupg,我在一个名为key.pub的文件中有一个公钥,其内容如下所示: ssh-rsa AAAAB...<snip>...t+f klahnakoski ssh rsa AAAAB……t+f klahnakoski 我想用它来加密带有gpg的文件。所需的shell命令顺序是什么 我想序列看起来像: 将密钥转换为gpg友好格式 发明一些凭证来签署密钥 发明一个用户以方便向钥匙圈添加钥匙 执行加密 谢谢大家! 可能会给您一些想法,它遵循PGP的相同原理,只使用公共ssh密钥加密密码。RS
key.pub
的文件中有一个公钥,其内容如下所示:
ssh-rsa AAAAB...<snip>...t+f klahnakoski
ssh rsa AAAAB……t+f klahnakoski
我想用它来加密带有gpg
的文件。所需的shell命令顺序是什么
我想序列看起来像:
- 将密钥转换为gpg友好格式
- 发明一些凭证来签署密钥
- 发明一个用户以方便向钥匙圈添加钥匙
- 执行加密
谢谢大家! 可能会给您一些想法,它遵循PGP的相同原理,只使用公共ssh密钥加密密码。RSA密钥只能用于加密密钥长度的一部分。e、 g.2048位RSA密钥只能用于加密大约245个字节 见: 因此,要加密/解密大量数据(文件),您将使用对称密钥,该密钥是使用公钥加密的,而不是公钥本身 另外,您不会将对称密钥添加到公共SSH密钥中,因为对称密钥是秘密的,而公共SSH密钥不是秘密的。应将对称密钥添加到专用SSH密钥中
gpg -vv -r userid-ssh@example.com -e -a unencrypted_file.txt
它是这样的:
要转换文件格式,请安装monkeysphere工具集(Ubuntu)
使用pem2openpgp工具将私钥转换为gpg格式。导入到gpg的管道
pem2openpgp userid-ssh@example.com < id_rsa | gpg --import
# Check it's there
gpg --list-secret-keys
添加所需的信任级别(例如,ultimate)
导入的密钥仅适用于创建证书,不适用于签名或加密
加密
该密钥是RSA密钥,不能用于加密/解密大量数据。如果要这样做,必须添加对称加密子密钥。加密时,GPG将使用此子密钥而不是原始SSH密钥
gpg> addkey
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
Your selection? 6
现在,您可以使用基于SSH密钥的标识进行加密和解密
gpg -vv -r userid-ssh@example.com -e -a unencrypted_file.txt
那么这有多有用呢
好的,使用GPG作为身份验证子密钥来生成和管理SSH密钥比使用GPG来生成和管理SSH密钥更有意义。事实上,它可以集成到SSH中,而不是SSH代理。我们大多数人只需创建一个GPG密钥。
gpg -vv -r userid-ssh@example.com -e -a unencrypted_file.txt