zoukankan      html  css  js  c++  java
  • Python建立SSH连接与使用方法

    paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接

    安装过程也比较简单,先安装pycrypto后安装paramiko,解压后在命令提示符下切换到解压后的目录,输入python setup.py install就可以了。另外安装pycrypto前需要先安装mingw,不然会因为缺少编译器而提示缺少一个BAT文件。安装好mingw后,需要在Python安装目录下的Libdistutils文件夹里建立一个distutils.cfg文件,文件内容为:

    [build] 
    compiler=mingw32

    mingw的下载地址:http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/

    pycrypto的下载地址:http://www.dlitz.net/software/pycrypto/

    paramiko的下载地址:http://pypi.python.org/pypi/paramiko

    由于windows下安装pycrypto 经常出现,如果出错,本处笔者,提供一个快捷方法:

    pycrypto下载稳定已编译版本:http://www.voidspace.org.uk/python/modules.shtml#pycrypto   (到这个位置下载对应的版本:pycrypto-2.6.win32-py2.7)

    安装好后,再通过pip install paramiko来安装paramiko模块

    当paramiko模块安装好后,可通过import paramiko进行测试验证。

    安装好以后就可以编写写代码了。由于我的SSH服务器只需要用户名和密码就可以连接,应该说属于最简单的一种了。

    stdout.readlines()返回一个列表,一般来说,Linux命令的每行输出存储为一个元素,且已经带了换行符。

    1 import paramiko   
    2        
    3 client = paramiko.SSHClient()   
    4 client.set_missing_host_key_policy(paramiko.AutoAddPolicy())   
    5 client.connect('192.168.118.x', 22, username='xx', password='xx', timeout=10)   
     cmd = ['ls -l','echo hello!']#你要执行的命令列表
    for m in cmd:
    6   stdin, stdout, stderr = client.exec_command(m) 7   for std in stdout.readlines(): 8 print std 9 client.close()

    使用SSHClient对象的这个方法执行例如ls,pwd等命令的时候,都执行的还不错。

    但是cd /path这个命令就有点问题了,发现cd到其他路径下,但是使用pwd发现还是在登录的时候的默认路径,/home/<user>

    相当于没有执行cd命令,这个时候就要把后续的想要执行的命令和cd放在同一个字符串中传入exec_command方法中才会生效。

    例如:

    client = paramiko.SSHClient()

    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    client.connect('IP', username='username', password='password', timeout=5)

    client.exec_command('cd /home/<user>/xxx/yyy; ls -al')

    这时会列出yyy的文件列表

  • 相关阅读:
    InitializingBean
    执行jar的记事本
    vue中$forceUpdate()事件
    帆软时间检索限制90天
    vue清楚子组件v-model绑定的值
    Intellij IDEA中启动多个微服务(开启Run Dashboard管理)
    Java将CST的时间字符串转换成需要的日期格式字符串
    axios发送命令如何实现同步
    利用tomcat启动web前端
    vue生命周期
  • 原文地址:https://www.cnblogs.com/jinjiangongzuoshi/p/5014668.html
Copyright © 2011-2022 走看看