如何通过SSH建立tunnel经过中转服务器给远程服务器传文件

2024-01-12 19:38

本文主要是介绍如何通过SSH建立tunnel经过中转服务器给远程服务器传文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下是Linux下的使用,如果在windows下使用ssh请参考windows7下cmd窗口使用ssh命令

情景是公司配置了远程服务器c,但是员工的电脑需要使用员工id密码先连接到一个中转服务网关b

已经尝试过在本地a上使用

ssh -p 22 <b的员工id>@<b的ip>

,然后在中转b上使用

ssh -p 22 <c的username>@<c的ip>

均可以成功跳转到对应的服务器上访问。

但是由于工作需要,要把本地a的文件传给服务器c,直接用scp是不可以的。

  • 已经尝试过直接在本地a上scp给服务器b失败,这很容易理解,一般中转服务器不让你上传文件的。
  • 尝试过在服务器b上使用scp把文件复制给服务器c,成功。

最后的解决办法如下:

  1. 在本地a使用以下指令,其中最后一个<SSH hostname>就是中转服务器的ip和用户名,可参考SSH Tunnel扫盲(ssh port forwarding端口转发)
    ssh -g -L <local port>:<remote host>:<remote port> <SSH hostname>

    写的详细点,比如我要使用本地的41234端口映射到服务器c的22端口,命令如下

    ssh -g -L 41234:<c的ip>:22 <b的员工id>@<b的ip>

    执行后会显示当前已在服务器b上

  2. 新打开终端,通过本地端口41234即可向服务器c复制文件,命令如下

    scp -P <端口> <本地文件索引> <c的username>@localhost:<服务器c上的目标目录>

    示例

    scp -P 41234 /lib/aaa/xxx.bin root@localhost:/dev/disk/

    其中大写的-P是因为scp默认连接的端口是22端口,如果ssh不是使用标准的22端口则使用-P(P大写)指定,参考scp复制文件到指定端口

这篇关于如何通过SSH建立tunnel经过中转服务器给远程服务器传文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/598946

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域