近日,公司在跳板机前架设了堡垒机,以防止ssh攻击,但这带来一个问题,我们平常直接ssh跳板机,可以直接使用scp来上传或下载跳板机数据到本地

架设堡垒之后经常使用的scp工具不好用了

于是本期就来解决跨堡垒机实现scp问题,解决方案同样适用阿里云子账号实现

常见堡垒-跳板-ECS结构拓扑图:

堡垒机、跳板机、服务器处于相同网段,可以直接内网访问,只留下堡垒机一个出口供外部使用

在上述拓扑中,本地和堡垒机实现了ssh便捷登录(普通堡垒机只需要保存本地公钥即可,阿里云堡垒机需配置子账号认证)

堡垒机和跳板机实现了ssh便捷登录,我们假设本地登录堡垒机ssh信息如下:

堡垒机开放ssh端口:60022

堡垒机域名:xxxxxx-public.bastionhost.aliyuncs.com

堡垒机IP:47.104.69.199

普通堡垒机登录:
admin@AdmindeMacBook-Pro-3 ~: ssh -p 60022 root@47.104.69.199
阿里云堡垒机登录:(dongxixi为子账号)
 admin@AdmindeMacBook-Pro-3 ~: ssh -p 60022 dongxixi@xxxxxx-public.bastionhost.aliyuncs.com 

通过以上命令我们可以轻松登录堡垒机(普通堡垒机直接登录,阿里云堡垒机需要继续输入子账号密码和MFA code)

我们假设跳板机ssh信息如下(只允许内网访问):

跳板机开放ssh端口:22

跳板机IP:47.105.21.22

当我们站在堡垒机上时,可以通过以下命令直接登录跳板机

root@47.104.69.199 ~:ssh 47.105.21.22

当上述流程都ok时,我们就开始配置本地ssh,实现跨堡垒机scp了

进入本地ssh配置目录:

admin@AdmindeMacBook-Pro-3 ~: cd ~/.ssh/

编辑config文件

admin@AdmindeMacBook-Pro-3 ~: vi config

如果本地存在config文件则追加,不存在则新建即可,以下配置根据自己实际填写

# 堡垒机配置 Host为别名 HostName可以是解析后的域名,也可以是ip,User为登录的用户
Host bastion
HostName xxxxx-public.bastionhost.aliyuncs.com # 或 47.104.69.199
User dongxixi
Port 60022 # 跳板机配置
Host jumper
HostName 47.105.21.22
User root
Port 22 Host jumper
ProxyCommand ssh -A -q bastion -W %h:%p

esc + wq!保存退出

接下来测试配置是否成功

# 上传测试,如果堡垒机是阿里云堡垒机,回车后会提示输入子账号密码和MFA code
admin@AdmindeMacBook-Pro-3 ~: scp -r ~/Downloads/test.txt jumper:~/

# 执行后如果没有报错,自行上跳板机查看是否存在相应文件

# 下载测试,
如果堡垒机是阿里云堡垒机,回车后会提示输入子账号密码和MFA code
admin@AdmindeMacBook-Pro-3 ~: scp -r jumper:~/test.txt ~/Downloads

多堡垒机、多跳板可在上述方案基础上继续改造!

谢谢!

本地Mac通过堡垒机代理实现跨堡垒机scp问题的更多相关文章

  1. hadoop学习;安装jdk,workstation虚拟机v2v迁移;虚拟机之间和跨物理机之间ping网络通信;virtualbox的centos中关闭防火墙和检查服务启动

    JDK 在Ubuntu下的安装 与 环境变量的配置 前期准备工作: 找到  JDK 和 配置TXT文件  并拷贝到桌面下  不是目录 而是文件拷贝到桌面下 以下的命令部分就直接复制粘贴就能够了 1.配 ...

  2. windows环境下 nginx+iis 反向代理解决跨域问题

    项目基本完成,是时候花点时间整理一下最近的姿势了 1 什么是跨域? 网上对于跨域的概念会有大篇幅的文章去解释,似乎有点玄乎,初学者很容易对这个概念产生恐惧,跨域其实很简单,其实只要知道一点,无法跨域访 ...

  3. VUE前端项目配置代理解决跨域问题

    VUE前端项目配置代理解决跨域问题 问题如下,经常在本地调试接口出现这种问题 解决方式1:Chrome 的扩展插件 以前使用Chrome 的扩展插件,但是有时候还是会出现莫名其妙的问题. 需要梯子才行 ...

  4. nginx反向代理实现跨域请求

    nginx反向代理实现跨域请求 跨域请求可以通过JSONP实现,缺点是需要修改被请求的服务器端代码进行配合,稍显麻烦通过在自己服务器上配置nginx的反向代理,可以轻松实现跨域请求 思路 示例服务器A ...

  5. web代理进行跨域访问

    通过web代理进行跨域访问,http请求返回超时的问题定位   [现象] 在ajax通过web代理跨域访问时,http第一次登陆时正常,但是第二次再下发其他命令的时候总是返回 java.net.Soc ...

  6. Coding theano under remote ubuntu server from local Mac (在本地mac机器上,写、跑、调试、看-远程ubuntu上的theano代码)

    本人是奇葩,最近鼓捣了一套在mac上coding远程ubuntu上的theano代码的东东,记之以期造福后人. Overview: 下图是我的编程环境和网络环境 我期望能在本地mac机器上对远程的ub ...

  7. nginx反向代理解决跨域

    nginx作为反向代理服务器,就是把http请求转发到另一个或者一些服务器上.通过把本地一个url前缀映射到要跨域访问的web服务器上,就可以实现跨域访问.对于浏览器来说,访问的就是同源服务器上的一个 ...

  8. nginx反向代理解决跨域问题

    跨域:浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 . 下表格为前后端分离的域名,技术信息:   域名 服务器 使用技术 前端 http://b.yynf.com ...

  9. VUE线上通过nginx反向代理实现跨域

    1.NGINX反向代理实现跨域 VUE代码中配置参考上一篇文章 nginx配置,红色框线内: 代码: location /list { proxy_set_header X-Real-IP $remo ...

随机推荐

  1. ECharts的基本使用与方法

    ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度 ...

  2. win10/win7下vs2013自带IISExpress支持局域网访问

    打开IISExpress安装目录(C:\Users\Administrator\Documents\IISExpress\config),一般为我的文档下,用记事本打开applicationhost. ...

  3. sklearn: CountVectorize处理及一些使用参数

    sklearn: CountVectorize处理及一些使用参数 CountVectorizer是属于常见的特征数值计算类,是一个文本特征提取方法.对于每一个训练文本,它只考虑每种词汇在该训练文本中出 ...

  4. easyui中给table列表中加序号

    $('#xyData_healthList').datagrid({ width: 'auto', height: 'auto', striped: true, fit: true, paginati ...

  5. 平滑算法:三次样条插值(Cubic Spline Interpolation)

    https://blog.csdn.net/left_la/article/details/6347373 感谢强大的google翻译. 我从中认识到了航位推算dead reckoning,立方体样条 ...

  6. [LeetCode]147. Insertion Sort List链表排序

    插入排序的基本思想 把排好的放在一个新的变量中,每次拿出新的,排进去 这个新的变量要有超前节点,因为第一个节点可能会有变动 public ListNode insertionSortList(List ...

  7. 总结JAVA语言的十大特性

    JAVA语言的十大特性 1.简单 Java语言的语法简单明了,容易掌握从,而且Java语言是纯面向对象的语言. Java语言的语法规则和C++类似,从某种意义上来讲,Java原因是由C语言和C++语言 ...

  8. 1.简单使用两片74HC595实现动态显示数码管

    本篇文章主要是讲解如何简单示用74HC595,更具体的讲解请移步 https://www.cnblogs.com/lulipro/p/5067835.html#undefined 这篇文章讲解的更加详 ...

  9. linux中的dmesg命令以及确定进程是否被系统主动kill

    linux中的dmesg命令以及确定进程是否被系统主动kill Feb 21, 2017 | java | 185 Hits 近期发现线上项目的进程莫名其妙的就不见了,也没有崩溃日志,就怀疑是被操作系 ...

  10. MMDetection 快速开始,训练自定义数据集

    本文将快速引导使用 MMDetection ,记录了实践中需注意的一些问题. 环境准备 基础环境 Nvidia 显卡的主机 Ubuntu 18.04 系统安装,可见 制作 USB 启动盘,及系统安装 ...