我想使用dropbear作为替代的、最小的ssh服务器和-client。dropbear允许在ssh访问中使用私有公钥,尽管这些钥匙并不是完全相同的openssh,并且必须使用dropbearconvert-command (这很容易实现)。
我遇到的问题是dropbear不支持加密私钥。但是,把未加密的ssh密钥放在我的笔记本电脑上是我想避免的原则上的事情。
因此,我的问题是:有没有人对如何绕过这个问题有什么好的想法,并有一个方法(脚本?)这一点:
gnupg)并将它们加载到内存中,dbclient-binary (dropbear-客户机-应用程序),并且此外,我还想知道ssh-config选项(特别是用于Host的选项)是否有一个替代选项(因此,是否有可能为-config创建一个特定于主机的配置文件,在这里我可以指定IP地址、端口和其他细节)。
发布于 2020-10-04 17:28:40
看来,dbclient完全愿意从命名管道或FIFO读取私钥。
因此,使用bash的进程替换,您可以编写:
dbclient -i <(cat .ssh/id_dropbear) user@server因此,如果您有一个GPG加密的.ssh/id_dropbear.gpg,您可以将它写成:
dbclient -i <(gpg --decrypt .ssh/id_dropbear.gpg) user@server在输入您的解密密码后,dbclient将使用您的GPG加密私钥登录。所以那部分很好用。
这里的主要问题是,如果在此之前已经存储了未加密的.ssh/id_dropbear,则可以通过取证方式恢复它。要从dropbearconvert动态加密密钥,可以应用相同的原则:
$ dropbearconvert openssh dropbear \
.ssh/id_openssh >(gpg --symmetric --output .ssh/id_dropbear.gpg)
Key is a ssh-rsa key
Wrote key to '/dev/fd/63'但是它在实践中似乎并不太有用,因为dropbearconvert对OpenSSH的加密私钥也只提供了非常有限的支持。在这个例子中,我必须特别创建一个OpenSSH密钥,dropbearconvert可以理解.
不幸的是,这个技巧似乎根本不适用于dropbearkey命令,该命令出于某种原因坚持将临时文件写入并重命名它,从而完全绕过管道。
因此,您似乎别无选择,只能先在tmpfs中生成私钥(比如在/dev/shm中或从活动cd中),然后从那里加密它。
https://unix.stackexchange.com/questions/612870
复制相似问题