下面是通过ssh的dsa或rsa公钥验证批量登录服务器执行命令:

   
   
   
   
  1. #!/usr/bin/python 
  2. #2012/02/02 by larry 
  3. import paramiko 
  4. import sys,os 
  5. port=22 
  6. username='larry' 
  7. key_file="~/.ssh/authorized_keys" 
  8. know_host="/home/larry/.ssh/known_hosts" 
  9. command=" ".join(sys.argv[1:]) ####获取命令行参数 
  10. file=open('ip.list'
  11. for line in file: 
  12.         hostname=str(line.split(' ')[1]) ####截取ip字段 
  13.         print "#####################################",hostname,"###############################################" 
  14.         s=paramiko.SSHClient() 
  15.         s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
  16.         s.load_system_host_keys(know_host) 
  17.         s.connect(hostname,port,username,key_file) 
  18.         stdin,stdout,sterr=s.exec_command(command) 
  19.         print stdout.read().strip() 
  20.         s.close() 
  21. file.close() 

ip.list和paramiko学习<一> 格式一样
执行python脚本:
python sshkey.py df  -h
################172.16.22.22########################
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       14G  3.5G  9.7G  27% /
/dev/mapper/VolGroup00-data
                      116G   47G   64G  43% /data
/dev/cciss/c0d0p1      99M   13M   82M  14% /boot
tmpfs                 5.9G     0  5.9G   0% /dev/shm