python ssh 公钥私钥 密码认证 sftp 服务器文件下载上传

背景:

在公司连服务器一般要么是密码认证要么是publick key认证,或者认证之前还要连vpn啥的,连上服务器一般运维都不会给开发人员root权限,我平常使用的是SecureCRT,经常有下载文件的需求,每次都需要打开session,然后右键连接sftp,如果一两台服务器还好,可每次都是十几二十台的服务器,每台都需要连sftp下载文件,所以写了个简单的脚本:
1. 可密码、公私钥认证,实现sftp文件上传下载
2. 脚本见:https://github.com/kute/purepythontest/blob/master/test/netease/scripts/sftp_downloader.py
3. 使用:
   a. 显示命令行帮助:python sftp_downloader.py -h
   b. 运行:python sftp_downloader.py -u zhangsan -p password -pk my-openssh-private-key -sf my-server-list-file-path -srcf the-file-name-to-be-download -dd the-file-dir-to-save --vote
   c. 可把 b中的命名设置成alias,使用就简单了
4. 脚本说明:
   a. argparse模块 使用接收命令行参数,然后分别设置 --vote  --tie --follow来区分要下载不同类型的服务器日志与传不同的日志路径
   b. easylog模块,自己封装的日志模块
   c. gevent,对文件中的多个服务器地址使用协程 来加快下载
   d. paramiko模块,核心使用,ssh连接认证
   e. 只封装了下载,上传、执行服务器命令等可以自己再扩展
   d. 当前只是为了满足方便使用,有很多地方可以调和纠错,指正。

相关文章

背景:我已经有一个ssh公钥和私钥了,绑定的是公司的码云但是...
在服务器程序的部署运维过程中,我们经常需要将文件从一个服...
#!/bin/bash#创建一个以.sc结尾的文件,把要操作的主机按顺序...
打开终端安装openssh-server软件包:sudoaptupdatesudoaptins...
环境centos7.9,.NET5一、Jenkins搭建1)下载Jenkins的war包...
dropbear下载地址:https://matt.ucc.asn.au/dropbearelease...