假设我有主机A,我从它 ssh 到主机B,在那里 Isudo -U some_role
和从它 ssh 到主机C。我的目标是C上的交互式 shell 。
假设从C I 不能 ssh 回到A。
使用上面建立的连接将文件从A复制到C的最佳方法是什么?我应该在链中引入哪些准备/更改以使不频繁的简单文件复制成为可能?
当然,我可以cat > target_file
在交互式 shell 中运行并通过终端复制粘贴,但是对于大型二进制文件,这并不十分方便。
我认为主机 B 是例如 Intranet 中的网关,可以连接到主机 A 和 C,例如:
-----------------------------------------------------------
| |
| |
--------- ----------- -------------- |
|A |------------------------------| B |------------------| | |
--------- | | | C | |
----------- -------------- |
| |
-----------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
在这种情况下,最好的解决方案是 ssh 端口转发。我在http://www.linuxintro.org/wiki/Tunneling_with_OpenSSH 上描述了它
首先,在 A 上,您使用以下命令将 B 的端口 2222 隧道连接到 C 的端口 22:
ssh -L 2222:C:22 B
Run Code Online (Sandbox Code Playgroud)
然后通过使用以下命令连接到 A(本地主机)上的端口 2222,复制到 C 的端口 22:
scp -P 2222 file root@localhost:
Run Code Online (Sandbox Code Playgroud)