当前位置: 首页 > 面试题库 >

ssh-keygen接受标准输入

呼延渝
2023-03-14
问题内容

我正在尝试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  <<<$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)


 类似资料:
  • 我使用命令“ssh-keygen-t rsa”创建了一个没有密码的公钥,我打算将其用于github,但我错误地发送了公钥和私钥...... 这到底意味着什么?

  • 问题内容: 我知道PHP通常用于web开发,那里 是 没有标准的输入,但是PHP声称是可用作通用脚本语言,如果你遵循它的古怪基于web的约定。我知道PHP可以使用和打印到(或任何您想调用的东西),这很简单,但是我想知道PHP脚本如何从(特别是使用,但是任何输入函数都可以)从中获取输入,或者这甚至可能吗? 问题答案: 可以通过创建一个文件句柄来读取,然后用来读取它,例如使用一行(或者,您已经说过,使

  • 我们已经见过好几个示例使用 stdin 了。这也应该是 logstash 里最简单和基础的插件了。 所以,在这段中,我们可以学到一些未来每个插件都会有的一些方法。 配置示例 input { stdin { add_field => {"key" => "value"} codec => "plain" tags => ["add"]

  • 我是Java的初学者。学习罗伯特·塞奇威克的《Java导论》 我尝试在Netbeans中编译以下代码。 } 我收到了这个错误。我已将文件放置在标准位置。java 线程“main”java.lang.RuntimeException中的异常:无法编译的源代码-错误的sym类型:示例。StdIn.is在示例中为空。verage.main(verage.java:16)Java结果:1 BUILD SU

  • 所以我做了一个测试窗口,里面有一个JTextField。我不知道出了什么问题。下面是主要代码。问题是,无论我做什么,我都无法编辑文本字段,也无法编辑我创建的第二个文本字段。我有一个带有文本字段的示例程序,它也可以工作,但根本不工作。 我不确定是否需要发布它,但我可以在这里获得完整程序的示例罐。我只发布了处理文本字段的区域 编辑:完整的源代码可在此处获得:GITHUB 我移除了一些东西,它成功了,我

  • 和之前 inputs/stdin 插件一样,outputs/stdout 插件也是最基础和简单的输出插件。同样在这里简单介绍一下,作为输出插件的一个共性了解。 配置示例 output { stdout { codec => rubydebug workers => 2 } } 解释 输出插件统一具有一个参数是 workers。Logstash 为输