报错的格式如下:
主要是缺少set_missing_host_key_policy配置信息。
set_missing_host_key_policy方法,是制定连接远程主机没有本地密钥或HostKeys对象是的策略,有三种策略:
1、AutoAddPolicy,自动添加主机名及主机密钥到本地HostKeys对象,并保存,不依赖load_system_host_keys()的配置,即使~/.ssh/known_hosts不存在也不产生影响。
2、WarningPolicy,用于记录一个未知的主机密钥的python警告,并接受它,功能上与AutoAddPolicy相似,但未知主机会有告警
3、RejectPolicy,自动拒绝不知的主机名和密钥,依赖 load_system_host_keys()的配置
>>> import paramiko
>>> ssh=paramiko.SSHClient()
>>> ssh.load_system_host_keys()
>>> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
>>> ssh.connect(hostname='192.168.4.71',port=22,username='username',password='password',compress=True)
>>> stdin,stdout,stderr=ssh.exec_command('hostname;uptime')
>>> print stdout.read()
192.168.4.71
21:49:19 up 15 days, 10:27, 0 users, load average: 0.01, 0.03, 0.05
>>> ssh.close()