我正在尝试使用此代码与SSH建立连接
#SSH conde for connection
ssh = paramiko.SSHClient()
# Load SSH host keys.
ssh.load_system_host_keys()
# Add SSH host key automatically if needed.
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(IP, username=USER, password=PSW,look_for_keys=False)
但有时会出现如图所示的消息:
SSH_Question
给了我如图所示的错误:Hostkey_Error
是否有办法避免此消息?
BadHostKeyException表示SSH服务器的主机密钥已更改,即与您存储的主机密钥不同(默认在~/.ssh/known_hosts
中)。
假设您了解这通常是不好的做法(因为您将盲目地接受主机密钥而不验证它们),您可以通过删除load_system_host_keys()
并保留AutoAddPolicy
来绕过主机密钥验证。
它不为您工作的原因是因为AutoAddPolicy
自动添加新的主机键但是由于使用了load_system_host_keys()
,因此您所连接的主机被认为是已知的(尽管使用了更改的键,因此会出现例外)。