在本地用key登录某机器后,一般在known_hosts文件会有这台机器的ip信息,那么如果以后这个ip分配给别的机器后,你再在本地登录就会报错。
以下这段代码可以解决相关问题:
import os import subprocess def remove_hostkey(ip): subprocess.call(["ssh-keygen", "-R", ip]) if __name__ == '__main__': remove_hostkey(xxx.xxx.xxx.xxx) #下面这段代码是可以让你自动化是不用输yes认证 with open(os.path.expanduser("~/.ssh/known_hosts"), 'a') as f: f.write("{0} {1}\n".format(floating_ip, key))