python的paramiko模块简单应用

本文详细介绍了如何使用Python的paramiko库中的SSHClient进行密码及密钥方式登录远程服务器并执行命令,同时展示了如何利用Transport实现文件的上传与下载。

用法1,SSHClient

分别可以使用密码和秘钥登陆,然后执行命令,并且获取执行结果

import paramiko

#创建一个SSH对象
ssh = paramiko.SSHClient()

#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

#通过用户名和密码去连接服务器
ssh.connect(hostname="127.0.0.1",port=22,username="xxxxx",password="123")

#执行命令,stdin是输入,stdout是正常的输入,stderr是错误的输出,这里正常的输出
#和错误的只能有一个有值
stdin,stdout,stderr = ssh.exec_command("df")

#获取命令结果
res = stdout.read()
res = stderr.read()
ssh.close()


# 上面是基于用户名密码访问ssh,其实还可以通过秘钥去访问ssh



#创建一个SSH对象
ssh = paramiko.SSHClient()

priv_key = paramiko.RSAKey.from_private_key_file("ke用的路径")
#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

#通过秘钥去连接服务器
ssh.connect(hostname="127.0.0.1",port=22,username="xxxxx",pkey=priv_key)

#执行命令,stdin是输入,stdout是正常的输入,stderr是错误的输出,这里正常的输出
#和错误的只能有一个有值
stdin,stdout,stderr = ssh.exec_command("df")

#获取命令结果
res = stdout.read()
res = stderr.read()
ssh.close()

 

 

用法2,transport,上传和下载文件

import paramiko

transport = paramiko.Transport(("hostname",22))

#通过用户名密码去连接
transport.connect(username="xxxx",password="123")

sftp = paramiko.SFTPClient.from_transport(transport)

#把本地文件上传到远程
sftp.put("/tmp/local/xxxx.py","tmp/test.py")


#把远程文件下载到本地
sftp.get("remove_path","local_path")

#关闭transport
transport.close()

  

 

转载于:https://www.cnblogs.com/bainianminguo/p/7450539.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值