eky*_*yle 6 ssh gnupg public-key-encryption
我在一个名为 的文件中有一个公钥key.pub,其内容如下所示:
ssh-rsa AAAAB...<snip>...t+f klahnakoski
Run Code Online (Sandbox Code Playgroud)
我想用它来加密文件gpg。所需的 shell 命令序列是什么?
我想序列看起来像:
谢谢!
小智 7
RSA 密钥只能用于加密其密钥长度的一部分。例如,2048 位 RSA 密钥只能用于加密大约 245 个字节。
看:
因此,要加密/解密大量数据(文件),您将使用使用公钥加密的对称密钥,而不是公钥本身。
此外,您不会向公共SSH 密钥添加对称密钥,因为对称密钥是秘密,而公共 SSH 密钥不是秘密。对称密钥应添加到私有SSH 密钥中。
它类似于以下内容:
要转换文件格式,请安装monkeysphere 工具集(Ubuntu)
sudo apt-get install monkeysphere
Run Code Online (Sandbox Code Playgroud)
使用 pem2openpgp 工具将私钥转换为 gpg 格式。管道到 gpg 进行导入。
pem2openpgp userid-ssh@example.com < id_rsa | gpg --import
# Check it's there
gpg --list-secret-keys
Run Code Online (Sandbox Code Playgroud)
编辑您在密钥中的信任级别。
gpg --edit-key userid-ssh@example.com
gpg> trust
Run Code Online (Sandbox Code Playgroud)
添加您需要的信任级别(例如终极)
导入的密钥仅适用于创建证书,不适用于签名或加密。
该密钥是 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
Run Code Online (Sandbox Code Playgroud)
现在您可以使用基于SSH 密钥的身份进行加密和解密。
gpg -vv -r userid-ssh@example.com -e -a unencrypted_file.txt
Run Code Online (Sandbox Code Playgroud)
那么这有多大用处呢?
嗯,使用 GPG 生成和管理您的 SSH 密钥作为身份验证子密钥比尝试相反的方法更有意义。事实上,它可以集成到 SSH 而不是 ssh-agent。
| 归档时间: |
|
| 查看次数: |
2319 次 |
| 最近记录: |