AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 728215
Accepted
oliver
oliver
Asked: 2015-10-12 09:09:18 +0800 CST2015-10-12 09:09:18 +0800 CST 2015-10-12 09:09:18 +0800 CST

什么可能导致 SFTP 主机密钥指纹不匹配?

  • 772

远程用户第一次尝试连接到我的 SFTP/SSH 服务器,使用 Mac OS X 下的“传输”客户端,发现主机密钥指纹与预期值不匹配。

我有显示指纹的屏幕截图,并将其与ssh-keygen -lf /etc/ssh/ssh_host_dsa_keyand的输出进行了比较,但它ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub与其中任何一个都不匹配。

我也没有成功地将指纹与 and 的输出进行比较cut -d ' ' -f 2 < /etc/ssh/ssh_host_dsa_key.pub | base64 -d | sha1sum(cut -d ' ' -f 2 < /etc/ssh/ssh_host_rsa_key.pub | base64 -d | sha1sum因为似乎使用了不同的指纹算法?)。

客户端的消息框标题为(翻译成英文)

<主机名>的未知主机密钥

和状态

服务器未知。主机密钥的指纹是<16 个八位字节>。( 允许 ) ( 拒绝 ) [ ] 总是

所以没有迹象表明是否使用 RSA 或 DSA 密钥,或者是否使用 MD5 或某些 SHA 算法来创建指纹。

显示给远程用户的指纹有 16 个以冒号分隔的八位字节,因此它似乎没有使用 SHA-224 或更高版本。更新:我刚刚注意到即使是 SHA-1 哈希也会有 20 个八位字节,所以显示的指纹显然不是任何 SHA 格式。

连接最终会转到正确的服务器,因为如果用户允许连接,我可以在服务器日志中看到登录尝试。因此,似乎在客户端正确输入了主机名/IP。

与另一个(完全不相关的)SFTP 服务器的连接也显示不正确的指纹(但与第一个服务器的指纹不同)。

如果我尝试从其他主机(或从服务器本身本地)使用 OpenSSH 自己连接到服务器,则会显示正确的指纹(RSA 主机密钥的 MD5 指纹)。

该服务器使用标准 OpenSSH 服务器运行 Debian 6 LTS。

什么可能导致这种指纹不匹配?我该如何调试这个问题?

linux
  • 2 2 个回答
  • 8110 Views

2 个回答

  • Voted
  1. Peter
    2015-10-16T03:54:52+08:002015-10-16T03:54:52+08:00

    如果这是他们第一次连接,那么是否存在不匹配并不重要......客户端只是有一些不相关的旧条目恰好具有与其关联的相同主机名或 IP 地址。只需清除它:

    ssh-keygen -R $name_or_ip
    

    做完之后,下次连接的时候肯定会说是RSA,ECDSA等。如果没有,请尝试使用适当的客户端,例如 Linux 上的标准 OpenBSD OpenSSH 客户端,或尝试 -v(或 -vvvv 等详细选项)。然后验证并接受新密钥。旧客户端的密钥指纹格式是 md5(新客户端是 sha256,采用一些奇怪的 base64 格式而不是 ascii-hex),而在服务器端获取指纹的正确方法是:

    ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
    
    • 4
  2. Best Answer
    oliver
    2015-10-19T02:01:15+08:002015-10-19T02:01:15+08:00

    原来使用的 FTP 程序不是 Transmit,而是 Cyber​​duck 4.5.1。错误指纹的问题已被称为错误的主机密钥指纹。更新到最新版本解决了这个问题,现在显示的指纹是正确的。

    • 2

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve