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 相关文章推荐
python中stdout输出不缓存的设置方法
May 29 Python
在Python中使用全局日志时需要注意的问题
May 06 Python
python实现xlsx文件分析详解
Jan 02 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
python http基本验证方法
Dec 26 Python
pandas实现to_sql将DataFrame保存到数据库中
Jul 03 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
教你怎么用Python监控愉客行车程
Apr 29 Python
Python实现简单的俄罗斯方块游戏
Sep 25 Python
Python turtle编写简单的球类小游戏
Mar 31 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
我的论坛源代码(十)
2006/10/09 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Django REST framework内置路由用法
2019/07/26 Python
python 有效的括号的实现代码示例
2019/11/11 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
建筑安全生产责任书
2014/07/22 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
小学家长通知书评语
2014/12/31 职场文书
总经理致辞
2015/07/29 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
节水宣传标语口号
2015/12/26 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
Python中文纠错的简单实现
2021/07/07 Python
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS