我经常遇到这样的情况,因为我的客户端和远程主机之间没有直接路由,所以我必须多次跳转到远程主机。当我需要从两跳或更多跳之外的远程主机复制文件时,我总是必须:
client$ ssh host1
host1$ ssh host2
host2$ scp host3:/myfile .
host2$ exit
host1$ scp host2:myfile .
host1$ exit
client$ scp host1:myfile .
Run Code Online (Sandbox Code Playgroud)
回到 uucp 仍在使用的时候,这就像一个简单的
uucp host1!host2!host3 /myfile .
Run Code Online (Sandbox Code Playgroud)
我知道 ssh 上有 uucp,但不幸的是我在这些机器上没有适当的权限来设置它。另外,我不确定我是否真的想摆弄客户的机器。
有谁知道无需设置大量隧道或将新软件部署到远程主机即可完成此任务的方法?也许某种递归脚本将自身克隆到所有远程主机,为我做艰苦的工作?
假设使用公钥进行身份验证并且所有主机都执行 SSH 代理转发。
编辑:我不是在寻找一种方法来自动将我的交互式会话转发到 nexthop 主机。我想要一个解决方案,通过多个跃点使用 scp 复制 bangpath 样式的文件,而无需在任何这些机器上安装 uucp。我没有对 ssh-config 进行永久更改的(合法)权利或特权。此外,我与许多其他人共享此用户名和主机。我愿意修改我自己的脚本,但我想知道是否有人知道已经做到了的东西。对 bangpath 上主机的最小侵入性更改,来自客户端的简单调用。
编辑 2:为了让您了解如何在交互式会话中正确完成,请查看GXPC clustershell。这基本上是一个 Python 脚本,它可以将自身转移到所有具有连接性和 ssh 密钥安装位置的远程主机上。关于它的好处是,您可以告诉“我可以通过 HostA 通过 HostB 到达 HostC”。它只是有效。我想为 scp准备这个。
ssh ×1