• paramiko 模块封装


    #!/usr/bin/env python
    #coding=utf-8

    import paramiko, getpass,sys,traceback

    class ssh_utils():
    def login_by_passwd(self, ip, port, username, passwd):
    self.ip = ip
    self.port = port
    self.username = username
    self.passwd = passwd
    self.pkey = None

    def login_by_key(self, username, key_path, passwd):
    try:
    self.pkey=paramiko.RSAKey.from_private_key_file(key_path)
    except paramiko.PasswordRequiredException:
    if not passwd:
    passwd = getpass.getpass('RSA key password: ')
    self.pkey = paramiko.RSAKey.from_private_key_file(key_path, passwd)

    def ssh(self,shell):
    try:
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    if self.pkey:
    ssh.connect(self.ip, self.port, self.username, compress = True, pkey= self.pkey)
    else:
    if not self.passwd:
    self.passwd = getpass.getpass('input password: ')
    ssh.connect(self.ip,self.port,self.username, self.passwd)
    stdin, stdout, stderr = ssh.exec_command(shell)
    res = stdout.readlines()
    ssh.close()
    return res
    except:
    type, value, tb = sys.exc_info()
    return traceback.format_exception(type, value, tb)

    def scp(self,localpath,remotepath):
    try:
    t = paramiko.Transport((self.ip,self.port))
    if self.pkey:
    t.connect(self.ip, self.port, self.username, pkey= self.pkey)
    else:
    if not self.passwd:
    self.passwd = getpass.getpass('input password: ')
    t.connect(username = self.username, password = self.passwd)
    sftp = paramiko.SFTPClient.from_transport(t)
    sftp.put(localpath,remotepath)
    t.close()
    return "SCP OK"
    except:
    type, value, tb = sys.exc_info()
    return traceback.format_exception(type, value, tb)

    if __name__ == '__main__':
    #使用例子
    myssh = ssh_utils()
    myssh.login_by_passwd("192.168.11.181",22,"ahwater","Aa7.")
    ret = myssh.scp('c:\inetpub\','d:\sl\')
    #myssh.ssh("cd d: && pwd")

  • 相关阅读:
    同样的so,放到不同的project中,就会报错
    Android Studio 编译错误
    github 笔记
    Android Demos
    Service 中的 onStart 和 onStartCommand
    JSON 转JAVA代码
    Android 安全提示 笔记
    10、List、Set
    11、Map、可变参数、Collections
    9、集合框架
  • 原文地址:https://www.cnblogs.com/ruiy/p/7144458.html
Copyright © 2020-2023  润新知