報錯的格式如下:
主要是缺少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()