自动化执行建互信,也可以使用其他脚本调用.不多说,直接上代码

#!/usr/bin/env python# encoding: utf-8import osimport pexpectimport getpass#yum install -y python-paramiko pexpect  #依赖的安装包.直接用yum即可import paramikoimport pexpect,os,optparsedef ssh_trust(ip,user,mypassword):    try:        pkey='/root/.ssh/id_rsa'        key=paramiko.RSAKey.from_private_key_file(pkey)        s=paramiko.SSHClient()        s.load_system_host_keys()        s.connect(hostname =ip,port=22,username=user,pkey=key)        stdin,stdout,stderr=s.exec_command('echo "Mutual trust has been successful"')        print stdout.read()    except:        print('Begin to build mutual trust')        child = pexpect.spawn('ssh-copy-id -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa.pub %s@%s' % (user,ip))        child.expect ('password:')        child.sendline (mypassword)        child.interact()        child.close(force=True)def exec_trust(ip,user,mypassword):    if os.path.exists('/root/.ssh') and os.path.exists('/root/.ssh/id_rsa.pub'):        ssh_trust(ip,user,mypassword)    else:        print('Create a public key')        os.system("ssh-keygen  -t rsa -N '' -f ~/.ssh/id_rsa")        ssh_trust(ip,user,mypassword)if __name__ == '__main__':    parse=optparse.OptionParser(usage='" usage : %prog [options] arg1, arg2 "', version="%prog 1.0")    parse.add_option('-u', '--user', dest = 'user', type = str, help = 'Login user name')    parse.add_option('-p', '--password', dest = 'password', type = str, help = 'The user password')    parse.add_option('-i', '--ip', dest = 'ip', type = str, help = 'The IP address.')    parse.add_option('-v', help='version 1.0')    parse.set_defaults(v = 1.0)    options,args=parse.parse_args()    ip = options.ip    user = options.user    if user is None:        user=getpass.getuser()    passwd = options.password    if passwd is None:        passwd='setpay@123'  #当传入密码为空是,自动的默认密码    exec_trust(ip,user,passwd)