python实现ssh及sftp功能(实例代码)


Posted in Python onMarch 16, 2020

1.在Linux上我们通过scp命令实现主机间的文件传送,通过ssh实现远程登录 ,比如 我们经常使用的xshell远程登录工具,就是基础ssh协议实现window主机远程登录Linux主机

 下面简单的在python实现这几个功能   下面使用到paramiko模块,这个不是python的内置模块,我直接通过pycharm下载这个模块,

第一步实现一个简单的ssh登录命令 代码如下:

import paramiko
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#第一次登录的认证信息
# 连接服务器
ssh.connect(hostname='192.168.158.131', port=22, username='root', password='hadoop')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls /')
# 获取命令结果
res,err = stdout.read(),stderr.read()
result = res if res else err
print(result.decode())
# 关闭连接
ssh.close()

登录并能实现简单的命令发送 和接收指令结果 ,这里面的方法写死了 ,但总算连接成功了,应为开始虚拟机的在学习iptables加了许多规则,并且在ssh 的服务器端修改了默认端口一直

连不上,修改配置文件后设置允许远程主机远程连接  ,/etc/ssh/sshd_config文件中配置

然后实现模拟Linux的scp 命令上传下载文件  ,使用了paramiko的Transport  简单的测试代码如下

import paramiko
transport = paramiko.Transport(('192.168.158.131', 22))
transport.connect(username='root', password='hadoop')
sftp = paramiko.SFTPClient.from_transport(transport)
# 将location.py 上传至服务器 /tmp/test.py
sftp.put('fromlinux.txt', '/tmp/test_from_win')
# 将remove_path 下载到本地 local_path
# sftp.get('/root/oldgirl.txt', 'fromlinux.txt')

transport.close()

同样的也能 测试成功 ,能实现文件的上传与下载

最后注意到paramiko.RSAKey这个功能,能思想比较牛逼的ssh免密登录,核心的过程就是在Linux通过ssh-keygen在主机上生成一对密钥 ,公钥放在~/.ssh/authorized_keys文件在,将私钥拷贝到windows主机的环境目录下 ,

import paramiko
private_key = paramiko.RSAKey.from_private_key_file('id_rsa31.txt')#要将私钥放在这里
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='10.0.0.41', port=22, username='fang', pkey=private_key)
# 执行命令
stdin, stdout, stderr = ssh.exec_command('df;ifconfig')
result = stdout.read()
print(result.decode())
stdin, stdout2, stderr = ssh.exec_command('ifconfig')
# 获取命令结果
result2 = stdout2.read()
print(result2.decode())
# 关闭连接
ssh.close()

成功的实现了免密连接,代码知识做简单的测试用,以连接为主,没考虑其他的实际需要

这些东西玩了一下午,还是挺神奇的,

总结

到此这篇关于python实现ssh及sftp功能 的文章就介绍到这了,更多相关python实现ssh sftp 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Django的视图(View)外使用Session的方法
Jul 23 Python
详解Python进程间通信之命名管道
Aug 28 Python
彻底理解Python list切片原理
Oct 27 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
Python编程求质数实例代码
Jan 31 Python
python3实现公众号每日定时发送日报和图片
Feb 24 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
python对excel文档去重及求和的实例
Apr 18 Python
Python格式化日期时间操作示例
Jun 28 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 #Python
Django ValuesQuerySet转json方式
Mar 16 #Python
Django 再谈一谈json序列化
Mar 16 #Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 #Python
Python读写操作csv和excle文件代码实例
Mar 16 #Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 #Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 #Python
You might like
8个出色的WordPress SEO插件收集
2011/02/26 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
javascript中this指向详解
2016/04/23 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
python批量提取word内信息
2015/08/09 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
django中forms组件的使用与注意
2019/07/08 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
高中三年学习生活的自我评价
2013/10/10 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
敬老月活动总结
2014/08/28 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
搞笑结婚保证书
2015/05/08 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
Python实现打乒乓小游戏
2021/09/25 Python
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技