![如何使用任何 SFTP/SSH 客户端查找服务器的公钥](https://linux22.com/image/1546840/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E4%BB%BB%E4%BD%95%20SFTP%2FSSH%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%9F%A5%E6%89%BE%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%85%AC%E9%92%A5.png)
有没有办法从任何 Sftp 客户端或使用任何工具获取 SFTP 服务器的公钥?我有权(用户名/密码)连接到生产 SFTP 远程服务器,我想从任何 SFTP 客户端或使用任何其他工具找到公钥。我的目的是在 Java JSCh 库中使用该公钥并连接到 SFTP 服务器。
答案1
唯一正确的方法是要求服务器管理员向您提供主机密钥。
如果你自己远程检索主机密钥,那么你实际上不能信任该密钥,因为你可能处于中间人攻击已经。
无论如何,最简单的方法是使用ssh-keyscan
工具:
> ssh-keyscan example.com
# example.com:22 SSH-2.0-OpenSSH_5.3
example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0hVqZOvZ7yWgie9OHdTORJVI5fJJoH1yEGamAd5G3werH0z7e9ybtq1mGUeRkJtea7bzru0ISR0EZ9HIONoGYrDmI7S+BiwpDBUKjva4mAsvzzvsy6Ogy/apkxm6Kbcml8u4wjxaOw3NKzKqeBvR3pc+nQVA+SJUZq8D2XBRd4EDUFXeLzwqwen9G7gSLGB1hJkSuRtGRfOHbLUuCKNR8RV82i3JvlSnAwb3MwN0m3WGdlJA8J+5YAg4e6JgSKrsCObZK7W1R6iuyuH1zA+dtAHyDyYVHB4FnYZPL0hgz2PSb9c+iDEiFcT/lT4/dQ+kRW6DYn66lS8peS8zCJ9CSQ==
如果你使用的是 Windows,请注意,Windows 10 和 Windows 11 的最新版本中内置了 OpenSSH ssh-keyscan
。对于较旧的 Windows 版本,你可以从Win32-OpenSSH 项目或适用于 Windows 的 Git。
有关更多选项和背景信息,请参阅我的文章在哪里可以获取 SSH 主机密钥指纹来授权服务器?