Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ssh公钥对gpg进行加密?_Ssh_Public Key Encryption_Gnupg - Fatal编程技术网

如何使用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