之前用过fabric模块通过ssh来传输文件,知道fabric是封装了paramiko模块来实现该功能的,而官方对paramiko的介绍就是:Python SSH module。
一般使用paramiko的功能就是通过ssh远程执行命令,远程传输文件等等。
模拟远程执行命令:
import paramiko #设置日志记录 paramiko.util.log_to_file('/tmp/test') #建立连接 ssh=paramiko.SSHClient() #缺失host_knows时的处理方法 ssh.load_system_host_keys() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #连接远程客户机器 ssh.connect('192.168.1.5',port=22,username='root',password='password',compress=True) #获取远程命令执行结果 stdin, stdout, stderr = ssh.exec_command('hostname;uptime') print stdout.read() #输出执行结果 ssh.close()
执行结果如下:
hongpan
16:26:40 up 38 days, 8:19, 0 users, load average: 0.04, 0.05, 0.00
模拟远程文件传输:
import paramiko #建立一个加密的管道 scp=paramiko.Transport(('192.168.1.5',22)) #建立连接 scp.connect(username='root',password='password') #建立一个sftp客户端对象,通过ssh transport操作远程文件 sftp=paramiko.SFTPClient.from_transport(scp) #Copy a remote file (remotepath) from the SFTP server to the local host sftp.get('/root/debian7','/tmp/debian7') #Copy a local file (localpath) to the SFTP server as remotepath sftp.put('/root/crash-6.1.6.tar.gz','/tmp/crash-6.1.6.tar.gz') scp.close()
项目地址:https://github.com/paramiko/paramiko
官方文档:http://docs.paramiko.org/