安装zssh

brew install zssh

上传文件

zssh登陆上跳板机

在跳板机上ssh到相应服务器

在服务器上cd至相应要放上传文件的目录

rz -bye //在远程服务器的相应目录上运行此命令,表示做好接收文件的准备

ctrl+@ //运行上面命令后,会出现一些乱码字符,不要怕,按此组合键,进入zssh

zssh > //这里切换到了本地机器

zssh > pwd //看一下本地机器的目录在那

zssh > ls //看一下有那些文件

zssh > sz 123.txt //上传本地机器的当前目录的123.txt到远程机器的当前目录

下载文件

sz filename //在远程机器上,启动sz, 准备发送文件,看到一堆乱码,不要怕,这会按下组合键

cd 切换到合适的目录

zssh > rz //接住对应的文件

#!/usr/bin/env python

# coding=utf-8

from optparse import OptionParser

import paramiko

import os,sys,time

"""

这个脚本的作用是实现堡垒机模式下,文件上传

"""

parser = OptionParser()

parser.add_option('-j', '--jumperuser', dest='jumperuser', help='Company jumper machine account like wutengfei, ..')

parser.add_option('-u', '--username', dest='username', help='Target machine account like wutengfei, ..')

parser.add_option('-p', '--port', dest='port', help='Target machine port')

parser.add_option('-m', '--hostname', dest='hostname', help='Target machine ip address like 192.168.246.168')

parser.add_option('-l', '--localpath', dest='localpath', help="Client local file path like '/Users/test.py'")

parser.add_option('-d', '--destpath', dest='destpath', help="Jumper server file path like '/tmp/test.py'")

parser.add_option('-t', '--targetpath', dest='targetpath', help="remote server file path like '/tmp/test.py'")

(opts,args) = parser.parse_args()

#定义跳板机信息

jumpername = "jumper.shuju.com" # 跳板机ip/域名

jumperport = 22 # 跳板机ssh端口

paramiko.util.log_to_file('syslogin.log')

class JumperInfo(object):

"""

将文件从客户端上传至跳板机

"""

def __init__(self,username,localpath,destpath):

self.username = str(username)

self.localpath = str(localpath)

self.destpath = str(destpath)

def jumper_ftp(self,jumperuser,localpath,destpath):

private_key = os.path.expandvars('$HOME/.ssh/id_rsa')

private_key = paramiko.RSAKey.from_private_key_file(private_key)

t = paramiko.Transport(('jumper.shuju.com', 22))

t.connect(username=jumperuser, pkey=private_key)

sftp = paramiko.SFTPClient.from_transport(t)

sftp.put(localpath,destpath)

sftp.close()

passinfo='\'s password: '

class Jumper_put(JumperInfo):

"""

将跳板机上的文件上传至目标机

"""

def __init__(self,hostname,username,port,targetpath):

self.hostname = str(hostname)

self.username = str(username)

self.port = str(port)

self.targetpath = str(targetpath)

def jumper_scp(self,jumperuser,destpath,username,hostname,targetpath,port):

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

privatekey = os.path.expandvars('$HOME/.ssh/id_rsa')

key = paramiko.RSAKey.from_private_key_file(privatekey)

ssh.connect(hostname='jumper.shuju.com', username=jumperuser, port=22, pkey=key)

channel = ssh.invoke_shell()

channel.settimeout(10)

buff = ''

resp = ''

channel.send('scp ' + ' ' + '-P' + ' ' + port + ' ' + destpath + ' ' + username + '@' + hostname + ':' + targetpath + '\n')

while not buff.endswith('$ '):

resp = channel.recv(9999)

if not resp.find(passinfo)==-1:

print 'Error info: Authentication failed.'

channel.close()

ssh.close()

sys.exit()

buff += resp

print buff

channel.close()

ssh.close()

def main():

jumper_ssh = JumperInfo(username=opts.jumperuser,localpath=opts.localpath,destpath=opts.destpath)

jumper_ssh.jumper_ftp(opts.jumperuser,opts.localpath,opts.destpath)

target_ssh = Jumper_put(hostname=opts.hostname,username=opts.username,port=opts.port,targetpath=opts.targetpath)

target_ssh.jumper_scp(opts.jumperuser,opts.destpath,opts.username,opts.hostname,opts.targetpath,opts.port)

if __name__ == '__main__':

if opts.jumperuser == None or opts.username == None or opts.hostname == None or opts.localpath == None or opts.destpath == None or opts.targetpath == None or opts.port == None:

parser.print_help()

exit(-1)

main()

堡垒机如何传输文件_mac 堡垒机传文件相关推荐

  1. linux下adb传输文件,使用adb在电脑和手机间传文件,adb手机传文件

    使用adb在电脑和手机间传文件,adb手机传文件 首先需要root手机. 然后,"Win + R",打开cmd窗口.下面以copy d:\1.txt到/system/目录为例说明 ...

  2. Confluence wiki上传文件时报“不能上传文件至Confluence中,服务器可能已失效”

    Confluence wiki 上传文件时报"不能上传文件至Confluence中,服务器可能已失效"的解决方法. 一. 后台管理修改配置 首先用管理员登陆Confluence后台 ...

  3. vue+elementui 同时有上传文件和批量上传文件功能,上传文件或批量上传文件后必须刷新才能再次上传文件

    报错描述: 使用element-ui的上传文件组件写一个批量上传和上传文件,但是发现每次上传文件后或者批量上传文件后,不能再次上传文件或者批量上传文件.只有进入页面第一次点击上传文件或者批量上传文件才 ...

  4. linux上传文件命令ftp put,Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...

    介绍:从本地以用户anok登录的机器192.168.0.16上通过ftp远程登录到192.168.0.6的ftp服务器上,登录用户名是peo.以下为使用该连接做的实验. 查看远程ftp服务器上用户pe ...

  5. linux get与put,科技常识:Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...

    今天小编跟大家讲解下有关Linux ftp 命令行中下载文件get与上传文件put的命令应用详解 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Linux ftp 命令行中下载文件get与 ...

  6. linux上传文件put,详解Linux ftp 命令行中下载文件get与上传文件put的操作方法

    尽管现在有许多好的FTP应用程序,但服务器命令行ftp命令的应用程序仍然很多,下面就让电脑乐园小编带你一起来学习详解Linux ftp 命令行中下载文件get与上传文件put的操作方法. 介绍:从本地 ...

  7. android手机传输,智能手机怎么传文件 安卓手机怎么传文件 安卓手机文件传输方法集合...

    智能手机的功能多了,也会造成一个麻烦,就是需要越来越多种类的文件,文件容量越来越大,跟电脑或者其他手机倒起来也会相对麻烦,就拿苹果手机来说,如果要用手机和电脑相互间传一些东西的话,就需要电脑端有iTu ...

  8. 两台计算机ping上传文件,两台电脑传文件(两台电脑之间如何快速传输几百G的文件)...

    两台电脑传文件(两台电脑之间如何快速传输几百G的文件)导语:电脑与电脑之间进行文件传输,对于经常使用电脑的人来说,这是再正常不过的一个操作了.可是几百GB的文件该如何传输呢?通过宽带网络进行传输?由于 ...

  9. java ssh 服务器文件传输_java使用SFTP上传文件到资源服务器

    本文实例为大家分享了java实现SFTP上传文件到资源服务器工具类,供大家参考,具体内容如下 首先得创建连接sftp服务器的公共类MySftp.java: package cn.test.util; ...

最新文章

  1. 学习MSCKF笔记——四元数基础
  2. 那些年,我在游戏开发中改过的bug:坑爹的Vista与中间件
  3. [C#]打包项目[转]
  4. C++ template 学习归纳2
  5. Vuex的全面用法总结
  6. java三板斧_Java 枚举使用三板斧
  7. java 正则提取大于等于号_Java正则表达式
  8. Shiro自定义realm实现密码验证及登录、密码加密注册、修改密码的验证
  9. 56. Yii Modules
  10. Javascript心得(一) Javascript数据类型
  11. 带你了解关系网络在反欺诈领域的常见应用
  12. SSB基准测试-ClickHouse
  13. Wing Pro 7中文版
  14. mongodb连接不上的问题Exception thrown during connection pool background maintenance task
  15. 引入jq库,却不起效,底线解决方法
  16. Laravel Elasticsearch
  17. html子代选择器,Css 后代选择器与子代选择器的区别
  18. IOS 发布被拒 PLA 1.2问题 整个过程介绍 03 个人账户升级公司账户
  19. [vim与gvim技巧]vimgvim技巧大全(1)
  20. lEO数值资产系统新版本c2c币数值合约交易平台自动撮合松机器人功能

热门文章

  1. Kubernetes集群搭建以及基本使用【具详细】;
  2. [转载]国家天文大地网
  3. 刘备学Android目录
  4. NSX-T 启用DHCP服务器
  5. 使用SharePoint中的Move To功能将一个文档转移到其他位置
  6. php网站mercury安装,mercury300m无线路由器设置教程 教你正确安装无线路由器
  7. i5 12400f和i3 12100f性能对比
  8. ArrayMap 源码解析
  9. 【文件格式漏洞】微软ANI光标文件漏洞彻底分析利用
  10. linux 个人云存储_2020年搭建NAS,你应该这样选!联想个人云存储A1深度体验