![通过链式 SSH 连接复制文件](https://linux22.com/image/801078/%E9%80%9A%E8%BF%87%E9%93%BE%E5%BC%8F%20SSH%20%E8%BF%9E%E6%8E%A5%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6.png)
我正在使用远程服务器,想从服务器复制文件。使用服务器时,我需要通过 2 个步骤登录。username@A
登录服务器 A 后,我需要再次登录 ssh。
ssh username@B
所以我现在在服务器 B 中。 (by uname -a
) 有没有办法将服务器 B 中的文件下载到本地计算机?我尝试了 sftp 和 scp,但我不知道如何指定服务器名称。用户名@A 和用户名@B 都已测试过,但不起作用。任何建议都将不胜感激。
答案1
首先通过 A 从本地计算机启动到服务器 B 的 SSH 隧道:
$ ssh user@serverA -L2222:serverB:22
然后从另一个终端,直接 scp 到/从 B:
$ scp -P 2222 /path/to/file user@localhost:/path/to/destination
请注意,由于端口隧道,user@localhost
实际上是user@serverB
,因此请确保使用该远程服务器的适当用户名。