【问题标题】:How to create a known hosts file? [duplicate]如何创建已知的主机文件? [复制]
【发布时间】:2021-03-26 04:45:07
【问题描述】:

我正在尝试使用 python 连接到 SFTP 站点,但我的 windows 10 机器上不存在 known_hosts 文件。网上查到第一次连接服务器时出现host key:https://winscp.net/eng/docs/ssh_verifying_the_host_key

如何将其转换为可以在我的 python 代码中使用的 known_hosts 文件?

我尝试在上面的示例中创建类似:hostname ssh-rsa 2EP...8MZ 的文件,但收到无效的主机密钥错误:Error('Incorrect padding'))

谢谢。

import pysftp

cnopts = pysftp.CnOpts(knownhosts='C:\\Users\\Documents\\known_hosts')

with pysftp.Connection('xxx',username='xxx', password='xxx',cnopts=cnopts) as sftp:
    localpath='TEST.txt'
    remotepath='TEST.txt'
    sftp.put(localpath,remotepath)
    sftp.close()

【问题讨论】:

    标签: python sftp openssh


    【解决方案1】:

    首先,您需要真正了解您使用的是什么协议。在您的问题中,您多次提到 FTP,而您的代码 + 您正在谈论的概念 (known_hosts) 是 SFTP 的东西。

    FTP 和 SFTP 是两种完全不同的协议,FTP 用于在客户端和服务器之间传输文件,而 SFTP 用于在 SSH 客户端和服务器之间移动文件。

    【讨论】:

    • 抱歉,是 SFTP,不是 FTP。
    【解决方案2】:

    解决了!!!所以我在 Windows 上使用 FileZilla 和 WinScp 进行 sftp 传输,但据我所知,C:\Users....ssh 文件从未存在过。我下载了Windows SSH客户端:https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/

    然后使用 PowerShell 连接到服务器。当您输入命令时:ssh hostname 它会说明 RSA 指纹并询问您是否要连接。输入是,它将返回“警告:将'主机名'永久添加到已知主机列表中。.ssh 文件将出现在您的 C:\Users....ssh 目录中。然后可以在 python 中引用它。

    谢谢。

    【讨论】:

      猜你喜欢
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 2014-12-20
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2012-03-18
      相关资源
      最近更新 更多