安装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 //接住对应的文件

原文:https://blog.csdn.net/shsdfhreh/article/details/73496515


用python脚本传 原文: https://blog.51cto.com/wutengfei/2176738

#!/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. 通过堡垒机上传文件报错ssh:没有权限的问题

    背景描述 一台有公网IP的主机安装的有jumpserver,假设为A主机,另外几台没有公网ip的主机,假设其中一个为B主机. 操作 1.通过主机A的公网IP和端口等登录到jumpserver的管理员用 ...

  2. 跨越跳板机传文件nc

    从线上服务器与本机互传文件 传输方 nc -l 10000 < a.tar 接收方 nc xx.xx.xx.xx 10000 >a.tar 原理: 文件传输方运行nc,指定端口,设置监听文 ...

  3. Mac 远程上传文件到 Linux

    打开Mac自带终端: 在最顶端选择Shell ->新建远程连接: 选择sftp连接,填好服务器地址: 连接成功后.上传文件,使用 put 命令: put 本地文件路径 远程主机路径

  4. python3 实现堡垒机功能(并发执行命令及上传下载文件)

    转载请注明出处,欢迎提出宝贵意见,谢谢! 功能介绍: 1.主机分组 登录后显示分组主机及主机数量 选择主机组后显示该主机组下所有主机信息,主机名及IP显示输入选择:1.执行命令利用线程并发组内所有主机 ...

  5. 本地Mac通过堡垒机代理实现跨堡垒机scp问题

    近日,公司在跳板机前架设了堡垒机,以防止ssh攻击,但这带来一个问题,我们平常直接ssh跳板机,可以直接使用scp来上传或下载跳板机数据到本地 架设堡垒之后经常使用的scp工具不好用了 于是本期就来解 ...

  6. Mac/Linux/Centos终端中上传文件到Linux云服务器

      1.mac上传文件到Linux服务器  scp 文件名 用户名@服务器ip:目标路径 如:scp /Users/test/testFile test@www.linuxidc.com:/test/ ...

  7. 关于mac 系统如何通过终端 连接linux服务器 并传文件!

    首先要打开终端 mac远程链接服务器 输入  : ssh   root@xxx.xx.xxx.xx xxx.xx.xxx.xx是端口号 后面会要求你输入password 即可远程连接 mac通过终端给 ...

  8. mac 命令行上传文件,mac tar.gz命令压缩

    在mac上可以直接打开命令行给服务器上传文件,注意是本地的命令行,不是服务器的命令行,我就走了绕路 命令可以看这里https://www.cnblogs.com/hitwtx/archive/2011 ...

  9. windows获取本机MAC地址并写入文件的bat

    windows获取本机MAC地址并写入文件的bat MAC(Media Access Control)地址,或称为 MAC地址.硬件地址,用来定义网络设备的位置. bat代码例如以下: @echo o ...

随机推荐

  1. 通过泛型,将string转换为指定类型

    Generic TryParse You should use the TypeDescriptor class: public static T Convert<T>(this stri ...

  2. spring restTemplate使用方法

    https://github.com/lenve/SimpleSpringCloud/tree/master/RestTemplate在Spring Cloud中服务的发现与消费一文中,当我们从服务消 ...

  3. Linux / Unix Command: rz

    yum install lrzsz Most communications programs invoke rz and sz automatically. You can also connect ...

  4. 畜禽免疫系统使用LODOP打印

    <div class="btn_box"> <asp:Button ID="btnPrint" Text="预览并打印" ...

  5. 文件上传&&验证文件格式

    $(function(){ $(".layui-progress").hide(); $("[data-upload-file]").each(function ...

  6. 点读系列《jmeter官方用户手册》

    官网:http://jmeter.apache.org/usermanual/ 说明:十八元件.十九属性.二十函数,涉及清单内容暂未仔细阅读,个人觉得一是仅供使用参考,二是适合单独写文章来解读 一.让 ...

  7. kafka的简介

    1. kafka是一个分布式消息队列.具有高性能.持久化.多副本备份.横向扩展能力.生产者往队列里写消息,消费者从队列里取消息进行业务逻辑.一般在架构设计中起到解耦.削峰.异步处理的作用. 1.1 b ...

  8. 19-python基础-进制之间的转换

    二进制-八进制-十进制-十六进制相互转换 1.十进制转为其他进制 # (1)十进制转二进制 a = 8 bin(a) --->>'0b1000' # (2)十进制转八进制 oct(a) - ...

  9. 13-vim-复制和粘贴-01-复制和粘贴

    1.vi中提供有一个被复制文本的缓冲区 复制命令会将选中的文字保存在缓冲区. 删除命令删除的文字会被保存在缓冲区 在需要的位置,使用粘贴命令可以将缓冲区的文字插入到光标所在位置. vi中的文本缓冲区同 ...

  10. Java技术专区-虚拟机系列-虚拟机参数(常用)

    基础参数系类(内存分配) -server:一定要作为第一个参数,在多个CPU时性能佳 -Xmn:young generation的heap大小,一般设置为Xmx的3.4分之一-Xms:初始Heap大小 ...