堡垒机如何传输文件_mac 堡垒机传文件
安装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 堡垒机传文件相关推荐
- linux下adb传输文件,使用adb在电脑和手机间传文件,adb手机传文件
使用adb在电脑和手机间传文件,adb手机传文件 首先需要root手机. 然后,"Win + R",打开cmd窗口.下面以copy d:\1.txt到/system/目录为例说明 ...
- Confluence wiki上传文件时报“不能上传文件至Confluence中,服务器可能已失效”
Confluence wiki 上传文件时报"不能上传文件至Confluence中,服务器可能已失效"的解决方法. 一. 后台管理修改配置 首先用管理员登陆Confluence后台 ...
- vue+elementui 同时有上传文件和批量上传文件功能,上传文件或批量上传文件后必须刷新才能再次上传文件
报错描述: 使用element-ui的上传文件组件写一个批量上传和上传文件,但是发现每次上传文件后或者批量上传文件后,不能再次上传文件或者批量上传文件.只有进入页面第一次点击上传文件或者批量上传文件才 ...
- linux上传文件命令ftp put,Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...
介绍:从本地以用户anok登录的机器192.168.0.16上通过ftp远程登录到192.168.0.6的ftp服务器上,登录用户名是peo.以下为使用该连接做的实验. 查看远程ftp服务器上用户pe ...
- linux get与put,科技常识:Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...
今天小编跟大家讲解下有关Linux ftp 命令行中下载文件get与上传文件put的命令应用详解 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Linux ftp 命令行中下载文件get与 ...
- linux上传文件put,详解Linux ftp 命令行中下载文件get与上传文件put的操作方法
尽管现在有许多好的FTP应用程序,但服务器命令行ftp命令的应用程序仍然很多,下面就让电脑乐园小编带你一起来学习详解Linux ftp 命令行中下载文件get与上传文件put的操作方法. 介绍:从本地 ...
- android手机传输,智能手机怎么传文件 安卓手机怎么传文件 安卓手机文件传输方法集合...
智能手机的功能多了,也会造成一个麻烦,就是需要越来越多种类的文件,文件容量越来越大,跟电脑或者其他手机倒起来也会相对麻烦,就拿苹果手机来说,如果要用手机和电脑相互间传一些东西的话,就需要电脑端有iTu ...
- 两台计算机ping上传文件,两台电脑传文件(两台电脑之间如何快速传输几百G的文件)...
两台电脑传文件(两台电脑之间如何快速传输几百G的文件)导语:电脑与电脑之间进行文件传输,对于经常使用电脑的人来说,这是再正常不过的一个操作了.可是几百GB的文件该如何传输呢?通过宽带网络进行传输?由于 ...
- java ssh 服务器文件传输_java使用SFTP上传文件到资源服务器
本文实例为大家分享了java实现SFTP上传文件到资源服务器工具类,供大家参考,具体内容如下 首先得创建连接sftp服务器的公共类MySftp.java: package cn.test.util; ...
最新文章
- 学习MSCKF笔记——四元数基础
- 那些年,我在游戏开发中改过的bug:坑爹的Vista与中间件
- [C#]打包项目[转]
- C++ template 学习归纳2
- Vuex的全面用法总结
- java三板斧_Java 枚举使用三板斧
- java 正则提取大于等于号_Java正则表达式
- Shiro自定义realm实现密码验证及登录、密码加密注册、修改密码的验证
- 56. Yii Modules
- Javascript心得(一) Javascript数据类型
- 带你了解关系网络在反欺诈领域的常见应用
- SSB基准测试-ClickHouse
- Wing Pro 7中文版
- mongodb连接不上的问题Exception thrown during connection pool background maintenance task
- 引入jq库,却不起效,底线解决方法
- Laravel Elasticsearch
- html子代选择器,Css 后代选择器与子代选择器的区别
- IOS 发布被拒 PLA 1.2问题 整个过程介绍 03 个人账户升级公司账户
- [vim与gvim技巧]vimgvim技巧大全(1)
- lEO数值资产系统新版本c2c币数值合约交易平台自动撮合松机器人功能