Python - paramiko 远程ssh执行

1 执行ssh命令

import paramiko


class Monitor:
    def __init__(self, ip, user, passwd):
        # 创建一个ssh的客户端,用来连接服务器
        self.client = paramiko.SSHClient()
        self.ip = ip
        self.user = user
        self.passwd = passwd

    def connect(self):
        # 创建一个ssh的白名单并加载
        self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        # 连接服务器
        self.client.connect(hostname=self.ip, port=22, username=self.user, password=self.passwd)

    def run_command(self, command):
        stdin, stdout, stderr = self.client.exec_command(command)
        error = stderr.read().decode("utf-8")
        message = stdout.read().decode('utf-8')
        return error, message

    def close(self):
        self.client.close()

2 文件上传与下载

import paramiko


class Trans:
    def __init__(self, ip, user, passwd):
        self.ip = ip
        self.user = user
        self.passwd = passwd
        self.trans = paramiko.Transport(ip, 22)

    def connect(self):
        self.trans.connect(username=self.user, password=self.passwd)
        self.sftp = paramiko.SFTPClient.from_transport(self.trans)

    def upload(self, localFile, remoteFile):
        self.sftp.put(localFile, remoteFile)

    def download(self, remoteFile, localFile):
        self.sftp.get(remoteFile, localFile)

    def close(self):
        self.sftp.close()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容