我用什么命令查看我的服务器的ECDSA密钥指纹是什么?

我在Google上看到了关于如何查看RSA密钥指纹而不是ECDSA指纹的信息。

等等,我find了。 运行命令:

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub 

用最近的ssh(OpenSSH_6.0p1,OpenSSL 1.0.0j 2012年5月10日),我这样写:

 ssh-keyscan -t ecdsa localhost 2>&1 | grep ecdsa localhost ecdsa-sha2-nistp256 AAAAE2VlongKey...= 

笔记:

  • 如果你的sshd在一个自定义的端口上运行,添加“ -p portNumber ”到ssh-keyscan命令)
  • ssh-keyscanstderr写入,而不是stdout (!),因此bashredirect' 2>&1 '(可以根据你的shell改变)

这是我添加到我的~/.ssh/known_hosts文件的行,以便为我的testing(主要是使用ssh的gitolite )授权本地主机的ssh请求。


DanielBöhmer 在评论中证实:

  • ssh-keyscan提供了SSH服务器的完整公钥
  • ssh-keygen的输出与公钥文件的格式几乎相同。
    只要删除第一列(IP地址或主机名),并保存或ssh-keygen -l到提供指纹的ssh-keygen -l

在我的系统上,我需要指定一个MD5密钥,而不是默认的SHA256:

 ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ecdsa_key.pub 

这会以与我在客户端上看到的错误相匹配的格式输出一个string。