Python3.x:paramiko模块简析

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

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模块简析)