博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
paramiko模块
阅读量:4361 次
发布时间:2019-06-07

本文共 2186 字,大约阅读时间需要 7 分钟。

 

paramiko模块封装了ssh,sftp等连接方法,常用于程序构建ssh等连接

 

1. paramiko 连接ssh服务的简单使用

  1.1 连接方式1

# -*- coding:utf-8 -*-# Author:Wong Duimport paramiko# 创建SSHClient对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# ssh连接服务器ssh.connect(hostname="10.0.0.105", port=22, username='Caiyun', password='123456')print("\033[32;1m连接成功了...\033[0m")# 获取命令的三个返回值标准输入、标准输出、标准错误输出stdin, stdout, stderr = ssh.exec_command('cats /etc/passwd')'''# low one# print(stdout.read().decode())# print(stderr.read().decode())# print(stdout.read().decode()) if stdout.read() else print(stderr.read().decode())''''''# low tworightout = stdout.read().decode()errorout = stderr.read().decode()print(rightout) if rightout else print(errorout)'''# High bigerightOut, errorOut = stdout.read(), stderr.read()result = rightOut if rightOut else errorOutprint(result.decode())ssh.close()

  1.2 连接方式2

# -*- coding:utf-8 -*-# Author:Wong Duimport paramiko# 封装ssh连接和认证transport = paramiko.Transport(('10.0.0.105', 22))transport.connect(username='Caiyun', password='123456')# 创建sshClient对象ssh = paramiko.SSHClient()# 建立ssh连接ssh._transport = transportstdin, stdout, stderr = ssh.exec_command('cat /etc/passwd')rightOut, errorOut = stdout.read(), stderr.read()result = rightOut if rightOut else errorOut # 三元运算print(result.decode())

 

2. paramiko SFTP服务的简单使用

# -*- coding:utf-8 -*-# Author:Wong Duimport paramiko# 封装ssh连接和认证身份transport = paramiko.Transport( ('10.0.0.105', 22))transport.connect(username='Caiyun', password='123456')# 建立连接sftp = paramiko.SFTPClient.from_transport(transport)try:    sftp.put('__init__.py', '/home/Caiyun/TEST/dfdsf')except Exception as e:    print('\033[31;1mError\033[0m', e)transport.close()

 

3. 用key文件认证建立连接

import paramikossh = paramiko.SSHClient()private_key = paramiko.RSAKey.from_private_key_file('id_rsa')ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect(hostname='10.0.0.105', port=22, username='Caiyun', pkey=private_key)stdin, stdout, stderr = ssh.exec_command('df')rightOut, errorOut = stdout.read(), stderr.read()result = rightOut if rightOut else errorOutprint(result.decode())

 

转载于:https://www.cnblogs.com/Caiyundo/p/9482563.html

你可能感兴趣的文章
EJB 笔记
查看>>
【delete】Android自定义控件(四) 自定义ImageView动态设置ImageView的高度
查看>>
HDUOJ------(1230)火星A+B
查看>>
Servlet
查看>>
基于jquery地图特效全国网点查看代码
查看>>
【leetcode】867 - Transpose Matrix
查看>>
selenium动作链
查看>>
敏捷外包工程系列之二:人员结构(敏捷外包工程,敏捷开发,产品负责人,客户价值)...
查看>>
《设计你的人生》的部分经典语录
查看>>
mustache多次渲染和多个赋值
查看>>
Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十三】
查看>>
linux-nohup命令
查看>>
[LeetCode OJ] Roman to Integer
查看>>
三次握手和四次挥手
查看>>
Redis的简单动态字符串实现
查看>>
putty network error:software caused connection abort
查看>>
存储过程 <3> 和函数的区别
查看>>
高级service之ipc ADIL用法
查看>>
Django框架-基础篇
查看>>
Leetcode: Binary Tree Maximum Path Sum
查看>>