Python3.x:paramiko模块简析

作者: james_chang | 来源:发表于2018-02-22 23:50 被阅读34次

    首先是这个模块的第一个应用

    SSH客户端

    这里通过一段代码来简单了解

    import paramiko
    
    # 实例化一个ssh客户端对象
    ssh = paramiko.SSHClient()
    
    # 自动在know_host中添加自己要连的机器,忽略这个验证,注意传入的参数paramiko.AutoAddPolicy()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    # 连接信息
    ssh.connect(hostname='hostadresss', port=22, username='root', password='password')
    
    # 传输命令,这里有三个返回值,按顺序第一个是标准输入,即你输入的命令,第二个标准输出,即命令返回值
    # 第三个标准错误,报错的时候会返回给这个值,同时返回值不是固定而是变化的时候也会返回给这个值一个错误
    stdin, stdout, stderr = ssh.exec_command('pwd')
    
    # 读取输出
    result = stdout.read()
    
    # 打印输出
    print(result)
    
    # 关闭客户端
    ssh.close()
    

    这里要注意的就是连接时的验证和发送命令时的三个返回值

    还有第二个版本使用私钥登陆(功能就是多)

    import paramiko
    
    # 声明私钥文件路径
    private_key = paramiko.RSAKey.from_private_key_file('id_rsa')
    
    # 生成ssh客户端实例
    ssh = paramiko.SSHClient()
    
    # 通过公共方式进行认证(不需要在known_hosts文件中存在)
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    # 连接服务器声明私钥
    ssh.connect(hostname='45.32.131.167', port=22, username='root', pkey=private_key)
    
    # 获得返回值
    stdin, stdout, stderr = ssh.exec_command('pwd')
    
    # 读
    result = stdout.read()
    
    # 打印
    print(result)
    
    # 关闭实例
    ssh.close()
    

    这个使用前不要忘了配置服务器端的ssh,要允许密钥登陆

    然后是第二个应用

    SFTP客户端

    import paramiko
    
    # 生成Transport实例传入ip和端口
    transport = paramiko.Transport(('hostname', 22))
    
    # 传入用户名密码连接
    transport.connect(username='root', password='123')
    
    # 生成SFTPClient实例传入上面连接后的实例
    sftp = paramiko.SFTPClient.from_transport(transport)
    
    # 上传文件
    sftp.put('put_file_path', 'server_path')
    
    # 下载文件
    sftp.get('download_file_path', 'local_path')
    
    # 关闭实例
    transport.close()
    

    这里要注意的是SFTP实例并不是一步创建的

    转载请注明出处

    python自学技术互助扣扣群:670402334

    相关文章

      网友评论

        本文标题:Python3.x:paramiko模块简析

        本文链接:https://www.haomeiwen.com/subject/plrtxftx.html