python3 paramiko模块,用来进行远程操作linux服务器,利用的就是ssh

#利用用户名,密码,进行连接
import paramiko #创建一个SSH对象
ssh=paramiko.SSHClient() #允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #连接一个主机
ssh.connect(hostname='192.168.1.2',port=22,username='root',password='root123') #执行命令
stdin,stdout,stderr=ssh.exec_command('df -h') #获取执行结果
result_right=stdout.read().decode("utf-8")
result_error=stderr.read().decode("utf-8") print("result_right:%s"%result_right)
print("result_error:%s"%result_error) #关闭连接
ssh.close()
#利用私钥,进行连接

import paramiko

#生成ssh实例
ssh=paramiko.SSHClient() #配置私钥,自己有个身份
pk=paramiko.RSAKey.from_private_key_file(filename="ip2_rsa_key") #允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #连接信息,pkey就是目标服务器的私钥,要求对方服务器有自己对应的公钥
ssh.connect(hostname="192.168.1.8",port=22,username='root',pkey=pk) #执行命令
stdin,stdout,stderr=ssh.exec_command("df -h;ifconfig")
res=stdout.read() print(res.decode("utf-8")) ssh.close()

利用paramiko,实现scp的文件上传下载

import paramiko

#创建scp的连接通道
scp_tran=paramiko.Transport(("192.168.1.2",22))
scp_tran.connect(username='root',password='root123') #把连接通道给SFTPClient,生成一个scp实例
scp=paramiko.SFTPClient.from_transport(scp_tran) #上传文件
scp.put("E:\\python学习51cto\\wy_home_temp\\temp.txt","/root/temp.txt") #下载文件
scp.get("/root/temp.txt","E:\\python学习51cto\\temp.txt") #关闭连接
scp_tran.close()
#这是利用私钥进行的连接

import paramiko

#创建sftp的transport连接
scp_tran=paramiko.Transport(("192.168.1.8",22)) #定义python程序的一个私钥,与目标服务器的公钥匹配的,其实是把当前python的私钥公钥对中的公钥扔给服务器以后就匹配了
pk=paramiko.RSAKey.from_private_key_file("ip2_rsa_key") #开启transport连接,建链
scp_tran.connect(username="root",pkey=pk) #弄一个sftp客户端出来,进行具体的文件传输
scp=paramiko.SFTPClient.from_transport(scp_tran) #上传文件
scp.put(localpath="ssh_pkey.py",remotepath="/root/ssh_pkey.py") #下载文件
scp.get(remotepath="/root/ssh_pkey.py",localpath="E:\\python学习51cto\\ttttttt") #关闭连接
scp_tran.close()

最新文章

  1. 黄学长模拟day1 球的序列
  2. 爱莲(iLinkIT)的架构与原理
  3. JavaScript学习笔记(6)——JavaScript语法之对象
  4. Java连接MySQl数据库实现代码
  5. [Android] An internal error occurred during: "Launching New_configuration". Path for project must have only one segment.
  6. centos6 kvm网卡桥接
  7. TCP/IP协议详解概述
  8. 【架构之路之WCF全析(一)】--服务协定及消息模式
  9. (转)完整java开发中JDBC连接数据库代码和步骤
  10. JQ重复注册问题
  11. How the Intelligent Digital Mesh Will Transform Every Business Layer
  12. Linux的内核和权限
  13. 完成 bass 库的频谱显示效果图
  14. Java 8 新特性7-方法引用、继承
  15. sass进阶—mixin的使用(浏览器兼容性调整)
  16. springboot最新版本自定义日志注解和AOP
  17. 高并发TCP连接数目问题
  18. 如何在office2010中的EXCEL表格使用求和公式
  19. Quadro P5200 - 最强大的移动工作站显卡 专门为了惠普 VR Z 背包电脑而发布
  20. Limu:JavaScript的那些书

热门文章

  1. bzoj 3205: [Apio2013]机器人【dfs+斯坦纳树+spfa】
  2. 洛谷P4891 序列
  3. react-native页面之间的相互传值
  4. Elementui实战知识点随记
  5. visual studio中使用clrscr程序出错
  6. Zoj 1610 Count the Colors (线段树+区间更新+暴力计数)
  7. windowsEvents
  8. NSoup获取网页源代码
  9. HTML中的那些bug
  10. github修改仓库项目的语言类型