【发布时间】:2019-10-06 16:34:23
【问题描述】:
如果我有公钥的字符串而不是文件,有没有办法获取公钥的 MD5 指纹(签名)?
ssh-keygen -l -E md5 -f "path/to/file"
这个命令会给我(除其他外)密钥的 MD5 指纹(签名)。我已经阅读了 ssh-keygen 命令的手册页并在我的 shell 中进行了试验,但我无法让它在字符串而不是文件上工作。我找不到带字符串的参数,并且我尝试在字符串中进行管道传输,并使用 STDIN 将字符串提供给 ssh-keygen - 均未成功。
我尝试在字符串上使用 Ruby 和 Digest::MD5.hexdigest,但要么我没有提供正确的字符串,要么我需要使用其他哈希机制,因为我也没有运气。 (我已经尝试过密钥的各种子字符串)
当然,我可以将字符串写入临时文件,然后在该文件上使用 ssh-keygen,但似乎我不应该这样做。
我最终希望在 Ruby 中解决这个问题,但我可以从 unix 实用程序或 bash 解决方案开始。如果需要,我可以随时从 Ruby 执行 shell 命令。
如果重要的话,我正在 macOS Mojave (10.14.6) 和 Ruby 2.6.4 上运行 bash(GNU bash,版本 3.2.57(1))shell
编辑:我将术语从签名更改为指纹,但在括号中留下签名。这两个术语我都见过,但我认为指纹更常见。
【问题讨论】:
标签: ruby bash ssh md5 ssh-keygen