zoukankan      html  css  js  c++  java
  • python之paramiko(一)

    [简介]

      paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。paramiko支持Linux, Solaris, BSD, MacOS X, Windows等平台通过SSH从一个平台连接到另外一个平台。利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输。

    [root@centos6 auto_maintance]# cat paramiko_key.py

    #!/usr/bin/env python
    # function: remote multi exec cmd by ssh.
    # version:1.1


    import paramiko
    import socket
    import sys,os


    host = sys.argv[1]
    user = sys.argv[2]
    port = int(sys.argv[3])


    authen_method = sys.argv[4]
    if authen_method == 'PASSWORD':
        password = sys.argv[5]
        cmd = sys.argv[6]
    else:
        cmd = sys.argv[5]
        ss = paramiko.SSHClient()
        ss.load_system_host_keys()
        ss.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    #pkey_file = '/home/alex/.ssh/id_rsa'
    #key = paramiko.RSAKey.from_private_key_file(pkey_file)
    #s.connect(host,port,username,pkey=key,timeout=5)
    try:
    if authen_method == 'SSH_KEY':
        pkey_file = '/root/.ssh/id_rsa'
        key = paramiko.RSAKey.from_private_key_file(pkey_file)
        ss.connect(host,port,user,pkey=key,timeout=5)
    elif authen_method == 'PASSWORD':
        ss.connect(host,port,user,password,timeout=5)
        stdin,stdout,stderr = s.exec_command(cmd)
        cmd_result = stdout.read(),stderr.read()
    print "--------Result from: %s -------" % host
    for line in cmd_result:
        print line,
    ss.close()
    except paramiko.AuthenticationException:
        print "33[31;1m%s Authentication Error!33[0m" % host
    except socket.error:
        print "33[31;1m%s Connection Refused!33[0m" % host

    当你的才华还撑不起你的野心时,就应该静下心来学习! Think big!Look forward!
  • 相关阅读:
    Loki 初体验
    柠檬研究院及第一期活动预告
    Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控
    聊聊AspectCore动态代理中的拦截器
    使用AspectCore动态代理
    AspectCore中的IoC容器和依赖注入
    AspectCore.Extension.Reflection : .NET Core反射扩展库
    Asp.Net Core轻量级Aop解决方案:AspectCore
    [精品书单] C#/.NET 学习之路——从入门到放弃
    创建vue项目
  • 原文地址:https://www.cnblogs.com/iber/p/7754996.html
Copyright © 2011-2022 走看看