我试图通过
bash
使用变量作为输入而不是文件来调用 ssh-keygen
以获取公钥指纹。我知道可以使用临时文件解决此问题,但由于本问题的范围原因,我不想这样做。但是,这种方法并不起作用,因为它显示密钥文件无效(它肯定是正确的)。
echo $pubkey | ssh-keygen -lf /dev/stdin
这个 可以 工作,但它没有使用变量,而是使用了一个文件。
ssh-keygen -lf alpha.pub
这个方法可以实现,但是它并没有使用变量,而是使用了一个重定向文件。
ssh-keygen -lf /dev/stdin < alpha.pub
这种方法不可行,因为我会得到一个模糊的重定向错误。
ssh-keygen -lf /dev/stdin < $(echo $pubkey)
我希望得到一些见解,了解如何让ssh-keygen从带有公钥的变量中读取,并如果可能的话,说明为什么重定向没有按照我想要的方式起作用。具体而言,为什么|
的行为不同于<
,以及第三个示例为什么是模棱两可的重定向
。我在网上搜索过,但很多重定向教程似乎没有回答我的问题。