我能否使用我的SSH公钥来解密文件?

23

我正在尝试找到一种方法,在“原始”EC2实例上解密已加密的文件。我使用这些EC实例(Ubuntu Lucid)仅包含我AWS创建的公共SSH密钥。如果可以使用它来解密文件,我可以让它解密加密文件(例如,包含我的子版本库密码的bash脚本)。

所以,我的问题是,我可以使用我的ssh密钥来加密/解密文件吗?


在Unix和Linux StackExchange网站上曾经问过一个非常类似的问题。我认为那里的答案会很有帮助:仅使用SSH私钥加密文件? - Mark Stosberg
3个回答

35

该文件:

echo 'This is a sekret' >/tmp/msg.txt

导出公钥(如果您没有它/丢失了):

openssl rsa -in ~/private.pem -out /tmp/public.pub -outform PEM -pubout

使用公钥(任何人都可以拥有)对文件进行加密:

openssl rsautl -encrypt -inkey /tmp/public.pub -pubin -in /tmp/msg.txt -out /tmp/file.enc

使用私钥解密文件(只有您应该拥有私钥):

openssl rsautl -decrypt -inkey ~/private.pem -in /tmp/file.enc -out /tmp/decrypted.txt

解码后的消息:

cat /tmp/decrypted.txt

这个回答如何解决问题中的“ssh”部分?我在这里没有看到对“ssh”或“.ssh”文件的引用。 - Mark Stosberg
谢谢。这正是我正在寻找的。 - Quxflux
2
@MarkStosberg,它解决了这个问题:“我正在尝试找到一种在'原始'EC2实例上解密加密文件的方法”。 - Hedgehog

1

你可以使用公钥加密文件,但是你需要相应的私钥才能解密它。因此,只要你有访问公钥和私钥的权限,你就可以使用你的ssh密钥来加密/解密文件。


2
谢谢您的快速回复!您能否给出一个命令示例(我在Linux上),告诉我如何做到这一点?抱歉,我现在还不清楚。 - bowlby

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接