[email protected] auto_maintance]# cat paramiko_key.py
#!/usr/bin/env python
# function:remote multi exec cmd by SSH.
# version:1.1
Import Paramiko
Import socket
Import Sys,os
Host = Sys.argv[1]
user = Sys.argv[2]
Port = Int (sys.argv[3])
Authen_method = Sys.argv[4]
if Authen_method = = ' PASSWORD ':
Password = sys.argv[5]
cmd = sys.argv[6]
Else
cmd = sys.argv[5]
SS = Paramiko. Sshclient ()
Ss.load_system_host_keys ()
Ss.set_missing_host_key_policy (Paramiko. Autoaddpolicy ())
#pkey_file = '/home/alex/.ssh/id_rsa '
#key = Paramiko. Rsakey.from_private_key_file (Pkey_file)
#s. Connect (host,port,username,pkey=key,timeout=5)
Try
if Authen_method = = ' Ssh_key ':
Pkey_file = '/root/.ssh/id_rsa '
Key = Paramiko. Rsakey.from_private_key_file (Pkey_file)
Ss.connect (host,port,user,pkey=key,timeout=5)
elif Authen_method = = ' PASSWORD ':
Ss.connect (host,port,user,password,timeout=5)
Stdin,stdout,stderr = S.exec_command (cmd)
Cmd_result = Stdout.read (), Stderr.read ()
Print "--------Result from:%s-------"% host
For line in Cmd_result:
Print line,
Ss.close ()
Except Paramiko. Authenticationexception:
Print "\033[31;1m%s authentication error!\033[0m"% host
Except Socket.error:
Print "\033[31;1m%s Connection refused!\033[0m"% host
Python's Paramiko (i)