gpt4 book ai didi

linux - ssh-keygen 接受标准输入

转载 作者:IT王子 更新时间:2023-10-29 00:18:23 25 4
gpt4 key购买 nike

我正在尝试调用 ssh-keygen通过 bash 使用变量作为输入而不是文件来获取公钥的指纹。我知道我可以使用临时文件来解决此问题,但出于超出此问题范围的原因,我不想这样做。

此方法有效,因为它说 key 文件无效(肯定是正确的)

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  <<<$key
1024 92:6a:3f:5c:1f:78:.....

/dev/stdin 指的是一个常规文件,使用 bash heredoc 创建。您可以验证这一点:

# ls -l /dev/stdin <<<$pubkey
lrwxrwxrwx 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)

关于linux - ssh-keygen 接受标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com