zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Linux Kernel USB 子系统(1)
    折腾 Gnome3
    2011年06月08日
    xelatex 果然好用
    倍受打击
    长到40岁学到的41件事
    autocompletemode + flyspellmode
    The Linux Staging Tree, what it is and is not.
    如何选择开源许可证?
    Use emacs & Graphviz to plot data structure
  • 原文地址:https://www.cnblogs.com/yinsedeyinse/p/10280187.html
Copyright © 2011-2022 走看看