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 相关文章推荐
在cmd命令行里进入和退出Python程序的方法
May 12 Python
Python基础之函数的定义与使用示例
Mar 23 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
使用Python的turtle模块画国旗
Sep 24 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
Python常用库大全及简要说明
Jan 17 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
Python如何解除一个装饰器
Aug 07 Python
python使用numpy中的size()函数实例用法详解
Jan 29 Python
python实现手机推送 代码也就10行左右
Apr 12 Python
深入理解pytorch库的dockerfile
Jun 10 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
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
10款实用的PHP开源工具
2015/10/23 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
$("").click与onclick的区别示例介绍
2014/09/25 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
详解mpvue开发小程序小总结
2018/07/25 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
判断网页编码的方法python版
2016/08/12 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
django 信号调度机制详解
2019/07/19 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
办公室文员工作职责
2014/01/31 职场文书
淘宝活动策划方案
2014/02/06 职场文书
教学评估实施方案
2014/03/16 职场文书
领导班子对照检查材料
2014/09/22 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
mysql查找连续出现n次以上的数字
2022/05/11 MySQL