【问题标题】:Automatically updating known_hosts file when host key changes using Paramiko使用 Paramiko 更改主机密钥时自动更新 known_hosts 文件
【发布时间】:2018-05-06 09:56:35
【问题描述】:

目前我正在使用 Paramiko(在 Python 中)在节点上执行远程命令。有时,远程节点会更改其公钥,因此 Paramiko 由于指纹不匹配而失败。有没有办法在 known_hosts 文件中更改密钥时更新它们?如果这不可能,还有其他方法可以忽略引发的警告吗?

目前我有一个 hacky 解决方案,其中 known_hosts 文件在拨打电话之前被删除,这是不好的。

【问题讨论】:

    标签: python ssh key paramiko ssh-keys


    【解决方案1】:

    BadHostKeyException 在主机密钥更改时抛出,因为这是连接被劫持的标志(又名Man-in-the-middle attack)。

    您永远不应盲目地忽略异常。除非可能,如果您连接到与您的客户端位于同一专用网络中的服务器。

    在您的具体情况下,更好的策略是在服务器重新安装期间保留主机密钥。


    无论如何,如果你真的不关心安全,并且愿意盲目接受任何主机密钥:

    • 不要调用SSHClient.load_host_keys,这样你就从已知主机密钥的空白列表开始;

    • 并使用AutoAddPolicy,自动接受新主机的主机密钥(由于前一点,所有主机都是新的):

      ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 2016-04-01
      • 2021-01-27
      • 1970-01-01
      • 2018-03-30
      • 2023-04-02
      相关资源
      最近更新 更多