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

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

相关阅读更多精彩内容

  • 打算的的撒的所得税大大大的按时打算打算打打大大大大大大大是大的打算的的撒的所得税大大大的按时打算打算打打大大大大大...
    419d5251fd0f阅读 1,733评论 0 1
  • cd /usr/local && git remote set-url origin https://git.co...
    瑞廷阅读 2,507评论 0 0

友情链接更多精彩内容