当前位置: 首页 > news >正文

三台机器,第一台机器可以ssh到第二台机器,第二台机器可以ssh到第三台机器,请问第一台机器上怎么通过ssh 直接从第三台机器scp文件到第一台机器?

三台机器,第一台机器可以ssh到第二台机器,第二台机器可以ssh到第三台机器,请问怎么通过ssh 直接从第三台机器scp文件到第一台机器。

现在一言的回答并不能让人满意:

由于SSH和SCP的常规用法不支持直接通过多个跳板机(或中转服务器)来传输文件,你需要采用一些间接的方法来实现从第三台机器直接将文件SCP到第一台机器。但是,你可以通过SSH的端口转发或代理功能来模拟这种行为。

然而,对于你的具体场景(第一台机器可以SSH到第二台,第二台可以SSH到第三台),最直接的解决方案可能是使用SSH的代理命令(-A 或 -t 选项,尽管这里-A用于转发认证代理,而-t用于强制分配伪终端,但在这个场景下我们主要关注的是如何串联SSH会话),但SCP本身不支持通过多个SSH会话进行文件传输。

不过,你可以通过以下步骤来间接实现:

  1. 从第三台机器SCP文件到第二台机器
    首先,你需要登录到第二台机器,并从那里SCP文件从第三台机器。这可以通过在第二台机器上执行SCP命令来完成,该命令通过SSH连接到第三台机器。

    # 在第二台机器上执行 
    scp user@third_server:/path/to/file /local/path/on/second_server

  2. 从第二台机器SCP文件到第一台机器
    一旦文件被复制到第二台机器上,你就可以从第一台机器SCP这个文件了。这可以通过在第一台机器上执行SCP命令来完成,该命令通过SSH连接到第二台机器。

    # 在第一台机器上执行 
    scp user@second_server:/local/path/on/second_server/file /path/to/destination

    但是,如果你想要一个更“直接”的(尽管是间接的)方法,并且想要减少在第二台机器上存储文件的需要,你可以考虑使用SSH的端口转发功能来创建一个从第一台机器到第三台机器的“隧道”,但这通常用于网络服务的转发,而不是直接用于SCP。

对于SCP来说,更实用的方法是使用SSH的-3选项(如果SSH客户端支持的话),它可以在两台不能直接通信的机器之间通过一台或多台中间机器传输数据,但这需要SSH版本和配置的支持,并且不是所有SSH实现都支持这个选项。

然而,标准的SSH和SCP工具并不直接支持这种多跳文件传输。因此,最简单和最可靠的方法通常是使用上述的两个SCP步骤。

如果你经常需要执行此类操作,并且想要自动化这个过程,你可以编写一个脚本来串联这两个SCP命令,或者使用更高级的工具(如rsync,它可能具有更好的错误处理和增量传输功能)来替代SCP。

还在期待更好的解决方法。

有个解决方法:

 在一台中转服务器,可以直接从服务器1 cp到服务器2 

scp server1:/path/file server2:/path/file2 

但是如果 两台服务器互相不连通,就需要加上-3参数了:

scp -3 server1:/path/file server2:/path/file2 


http://www.mrgr.cn/news/18297.html

相关文章:

  • 使用JavaScript读取手机联系人列表:从理论到实践
  • 服务器重启后能够自动重启Jar包
  • LeetCode字母异位词分组
  • 秋招/春招投递公司记录表格
  • 每一次逾越都是不可替代的成长![我是如何克服编程学习过程中的挫折感】
  • 虚拟机输入ip addr不显示IP地址
  • 算法之哈希表
  • 详解 Go 语言测试
  • 花生壳的登录及获取二级域名
  • 分贝通助力元气森林企业支出一体化降本提效
  • 使用 Bodybuilder 项目简化前端ES查询
  • C语言基础(三十三)
  • Java-数据结构-链表-LinkedList(一) (^_−)☆
  • 【最新华为OD机试E卷】猜字迷(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)
  • 【C++ Primer Plus习题】9.4
  • CSS瀑布流实现
  • 【操作系统】详述linux系统性能调优及技巧
  • 算法训练营|图论第10天 Bellman_ford:优化算法,判断负权算法,单源有限最短路
  • 【框架】在Spring Cloud分布式微服务框架中,一个请求的流转和处理的步骤
  • 干货含源码!如何用Java后端操作Docker(命令行篇)