Python之paramiko模块

今天我们来了解一下python的paramiko模块

paramiko是python基于SSH用于远程服务器并执行相应的操作。

我们先在windows下安装paramiko

1.cmd下用pip安装paramiko(python的版本用的anaconda的3.6,自带pip)

pip install paramiko

试一下,安装成功

但是这个时候在ide里运行是有问题的,因为Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH。所以我们需要先安装pycrypto工具,然后再安装paramiko模块才能使用。

但是pycrypto已经停止了对3.2以上版本python的支持,怎么办?

这时候可以查到一个新的模块,pycryptodome,该模块支持3.6以上版本的python。直接用pip安装

pip install pycryptodome

安装完成,就可以正常使用使用paramiko模块了

先做一个最基础的ssh客户端

 1 import paramiko
 2 ssh = paramiko.SSHClient()
 3 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 4 ssh.connect(hostname='192.168.233.129',port=22,username='root',password='aaronchang')
 5 while True:
 6     cmd = input('>>>')
 7     if len(cmd) == 0:continue
 8     stdin,stdout,stderr = ssh.exec_command(cmd)
 9     res,err = stdout.read(),stderr.read()
10     result = res if res else err
11     print(result.decode())
12 ssh.close()
View Code

从这里就可以当作连虚拟机里的linux了!但要注意的一点:输入的指令必须是有返回值的并且不能是top这种不停刷新的指令(top -bn1还是可以的!!)。

然后我们可以在python里用paramiko做一个sftp了!

1 import paramiko
2 transport = paramiko.Transport('IP',port)
3 transport.connect(username='这里填Linux的用户名',password='填用户的登陆密码')
4 sftp = paramiko.SFTPClient.from_transport(transport)#实力和sftp的客户端
5 sftp.put(r'D:\123.txt','/windowsfile/test') #上传文件sftp.put(要上传的文件,目标路径)
6 sftp.get('/windowsfile/from_linux.txt','test2')#下载文件sftp.get(要get的文件的路径,本地路径)
paramiko_sftp

 

posted @ 2019-01-18 19:50  银色的音色  阅读(1778)  评论(0编辑  收藏  举报