ssh 忽略known_hosts连接两种方式


1、通过paramiko连接:

#!/usr/bin/env python
import  paramiko
ip = '192.168.190.128'
username = 'root'
password = 'server'
port = 22
#设置记录日志
paramiko.util.log_to_file( 'ssh.log' )
#生成ssh客户端实例
=  paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print  "Starting"
s.connect(ip,port,username,password)
stdin,stdout,stderr  =  s.exec_command( 'free -m' )
print  stdout.read()
s.close()


如果s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 这句话注释掉就会报下面的错。

Unknown server 192.168.190.128,原因是因为使用ssh连接一个新机器的时候会弹出一段对话询问yes/no,如果选择yes,那么连接的主机信息就会产生一个密钥存放在~/.ssh/known_hosts中。set_missing_host_key_policy就是避免这个问题的,不需要对连接主机进行密钥验证的。


2、ssh直接连接:

加参数 -o StrictHostKeyChecking=no