ssh-keygen接受标准输入
我正在尝试ssh-
keygen使用变量bash
作为输入而不是文件来获取公共密钥的指纹。我知道我可以使用一个临时文件来解决此问题,但是由于超出该问题范围的原因,我不想这样做。
这种方法确实 没有 ,因为它说,关键文件是无效的工作(这是正确的肯定)
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从具有公共密钥的变量中进行读取,以及在可能的情况下,对为什么重定向没有按照我认为应该做的做的解释,我将不胜感激。具体来说,为什么|
行为与有所不同,<
以及为什么第三个示例是ambiguous
redirect。我在网上搜索,但是许多重定向教程似乎都无法回答我的问题。
回答:
echo $pubkey | ssh-keygen -lf /dev/stdin/dev/stdin is not a public key file.
/ dev / stdin实际上是unix管道,而不是常规文件,因此ssh-keygen无法打开文件
ssh-keygen -lf /dev/stdin <<<$key1024 92:6a:3f:5c:1f:78:.....
/ dev / stdin指的是使用bash heredoc创建的常规文件。您可以验证以下内容:
# ls -l /dev/stdin <<<$pubkeylrwxrwxrwx 1 root root 15 Feb 11 08:07 /dev/stdin -> /proc/self/fd/0
# ls -l /proc/self/fd/0 <<<$pubkey
lr-x------ 1 juergen juergen 64 Apr 14 13:31 /proc/self/fd/0 -> /tmp/sh-thd-1271250023 (deleted)
以上是 ssh-keygen接受标准输入 的全部内容, 来源链接: utcz.com/qa/402358.html