![](/img/trans.png)
[英]Is it acceptable to store a GPG'd 4096-bit RSA SSH private key in public?
[英]How to gpg encrypt with ssh public key?
我在名為key.pub
的文件中有一個key.pub
,其內容如下所示:
ssh-rsa AAAAB...<snip>...t+f klahnakoski
我想用它來加密帶有gpg
的文件。 所需的 shell 命令序列是什么?
我想序列看起來像:
謝謝!
RSA 密鑰只能用於加密其密鑰長度的一部分。 例如,一個 2048 位的 RSA 密鑰只能用於加密大約 245 個字節。
看:
因此,要加密/解密大量數據(文件),您將使用使用公鑰加密的對稱密鑰,而不是公鑰本身。
此外,您不會向公共SSH 密鑰添加對稱密鑰,因為對稱密鑰是秘密,而公共 SSH 密鑰不是秘密。 對稱密鑰應添加到私有SSH 密鑰中。
它類似於以下內容:
要轉換文件格式,請安裝monkeysphere 工具集(Ubuntu)
sudo apt-get install monkeysphere
使用 pem2openpgp 工具將私鑰轉換為 gpg 格式。 管道到 gpg 進行導入。
pem2openpgp userid-ssh@example.com < id_rsa | gpg --import
# Check it's there
gpg --list-secret-keys
編輯您在密鑰中的信任級別。
gpg --edit-key userid-ssh@example.com
gpg> trust
添加您需要的信任級別(例如終極)
導入的密鑰僅適用於創建證書,不適用於簽名或加密。
該密鑰是 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 密鑰作為身份驗證子密鑰比嘗試相反的方法更有意義。 事實上,它可以集成到 SSH 而不是 ssh-agent。
ssh-vault可能會給你一些想法,它遵循與 PGP 相同的原則,只使用公共 ssh 密鑰來加密密碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.