paramiko模块

paramiko模块

安装paramiko模块
本地安装
#yum install -y gcc gcc-c++ python-devel
#tar xzf paramiko-1.15.4.tar.gz
#python setup.py install
网络安装
#pip install paramiko
基础使用介绍
SSHClient
  • 创建用于连接ssh服务器的实例
>>>	ssh = paramiko.SSHClient()
  • paramiko.AutoAddPolicy
    设置自动添加主机密钥
  • ssh.connect
    连接ssh服务器
  • ssh.exec_comand
    在ssh服务器上执行指定命令
paramiko实例

编写用于实现ssh访问的脚本

  • 创建SSHClient实例
  • 设置添加主机密钥策略
  • 连接ssh服务器
  • 执行指定命令
  • 在shell命令行中接受用于连接远程服务器的密码以及在远程主机上执行的命令
import paramiko
import sys
import getpass
import threading
import os

def rcmd(host, user='root', passwd=None, port=22, command=None):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(host, username=user, password=passwd, port=port)
    stdin, stdout, stderr = ssh.exec_command(command)
    out = stdout.read()
    err = stderr.read()
    if out:
        print('[\033[34;1m%s\033[0m] \033[32;1mOUT\033[0m:\n%s' % (host, out.decode()))
    if err:
        print('[\033[34;1m%s\033[0m] \033[31;1mERROR\033[0m:\n%s' % (host, err.decode()))
    ssh.close()

if __name__ == '__main__':
    if len(sys.argv) != 3:
        print('Usage: %s ipfile "command"' % sys.argv[0])
        exit(1)

    if not os.path.isfile(sys.argv[1]):
        print('No such file: %s' % sys.argv[1])
        exit(2)

    ipfile = sys.argv[1]
    command = sys.argv[2]
    passwd = getpass.getpass()
    with open(ipfile) as fobj:
        for line in fobj:
            ip = line.strip()  # 去除行尾的\n,得到IP地址
            t = threading.Thread(target=rcmd, args=(ip,), kwargs={'passwd': passwd, 'command': command})
            t.start()  # rcmd(*args, **kwargs)
            # rcmd(ip, passwd=passwd, command=command)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值