我经常遇到这样的情况,因为我的客户端和远程主机之间没有直接路由,所以我必须多次跳转到远程主机。当我需要从两跳或更多跳之外的远程主机复制文件时,我总是必须:
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 host1 ssh host2 ssh host3 cat /myfile > myfile? :)
更新。(2014-01-20) : 最近我看到man dbclient其中提到:«...
-B endhost:endport — “Netcat-alike”模式,Dropbear 将连接到给定的主机,然后创建一个到 endhost 的转发连接。这将显示为 dbclient 的标准输入/输出。
Dropbear 还允许指定多个“跳跃”,以逗号分隔。在这种情况下,将与第一台主机建立连接,然后将通过 TCP 转发连接与第二台主机建立连接,依此类推。最终目的地以外的主机将看不到加密的 SSH 流以外的任何内容。主机的端口可以用斜杠指定(例如 matt@martello/44 )。此语法还可与 scp 或 rsync 一起使用(将 dbclient 指定为 ssh/rsh 命令)。一个文件可以通过多个 SSH 跃点“反弹”,例如
Run Code Online (Sandbox Code Playgroud)scp -S dbclient matt@martello,root@wrt,canyons:/tmp/dump .请注意,在上面的示例中,主机名由前一跳解析(因此“峡谷”将由主机“wrt”解析),与其他 -L TCP 转发主机的方式相同。根据给定的主机名在本地检查主机密钥。
尽管您特别提到这不是您想要的,但我还是坚持让您尝试一下,因为在目的地路径中的每个主机上设置脚本更加复杂且耗时。
如果您在主机笔记本电脑上并且希望将某些内容复制到主机网络服务器,但您只能通过companygatweay.org访问网络服务器,那么您需要做的就是:
laptop$ ssh -L4444 companygateway.org:webserevr:22
Run Code Online (Sandbox Code Playgroud)
这将打开本地计算机上的端口 4444,直接连接到端口 22 上的网络服务器。
使用 scp 复制到网络服务器将如下所示:
laptop$ scp -P 4444 /some/files/here localhost:/to/some/files/on/webserver
Run Code Online (Sandbox Code Playgroud)
从网络服务器复制:
laptop$ scp -P 4444 localhost:/tmp/remote/files /home/localusername/downloads
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |