python3使用paramiko模块,构建一个Server类,实现ssh、sftp的功能(更新版)

本文介绍了如何使用paramiko模块创建一个Server类,该类支持SSH连接到远程服务器,能执行命令并进行SFTP文件的上传与下载。已验证在Linux和Solaris系统上均能正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用paramiko模块,构建一个Server类,用来连接远程服务器,支持ssh连接、两种方式下发指令、sftp单文件的上传下载。

测试连接linux和solaris远程主机均能正常使用

代码:

# -*- coding: utf-8 -*-
"""
Created on Wed May 14 10:53:38 2019

@author: Phoenix

Modified : 2019-10-24
"""
import paramiko
from time import sleep


class Server(object):

    def __init__(self, ip, port, username, password, timeout=30):

        """
        通过IP, 端口,用户名,密码,超时时间,初始化一个远程主机
        :param ip:
        :param port:
        :param username:
        :param password:
        :param timeout:
        """

        self._ip = ip
        self._port = port
        self._username = username
        self._password = password
        self._timeout = timeout
        # transport, channel, ssh, sftp
        self._transport = None
        self._channel = None
        self._ssh = None
        self._sftp = None
        self._prompt = None
        # 连接失败的重试次数(总计3次尝试)
        self._try_times = 2


    # 调用connect方法连接远程主机
    def connect(self):
        _result = ''
        while True:
            # 尝试连接
            try:
                self._transport = paramiko.Transport((self._ip, self._port))
                self._transport.connect(username=self._username, password=self._password)
                # 如果没有抛出异常说明连接成功,直接返回
                # print('%s 创建成功' % self._ip)
                _result += 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值