如何使用scp命令通过跳板机将文件复制到远程主机

3

假设目标机器是user@B.com,唯一登录的地方是user@A.com(通常称为跳板机)
那么我如何使用scp命令将本地文件复制到机器B上呢?
我尝试过scp files user@B.com,但没有任何反应,只告诉我超时操作。

2个回答

2

这就是你要找的内容:

scp -J user@targetMachineA ./local_file_or_directory user@targetmachineB:/path/where/to/copy/

从scp手册中:

-J 目标主机 首先通过与由目标描述的跳跃主机建立scp连接,然后从那里建立到最终目标的TCP转发。多个跳跃可用逗号字符分隔指定。这是指定ProxyJump配置指令的快捷方式。 此选项直接传递给ssh(1)。


0

我不确定这是否是最佳解决方案,但您可以使用ssh中包含的tcp端口转发功能。

首先确保跳板机启用了Tcp Forwarding功能,请查看sshd_config文件,通常位于“/etc/ssh/”目录中。检查您是否有以下条目:

AllowTcpForwarding no

默认情况下,TcpForwarding已启用,因此如果未禁用,则应该没有问题。

您将在跳板机上建立连接,并在本地系统上创建一个端口,以直接与系统B通信。

在您的工作站上运行的ssh命令将是:

ssh -L 2222:server_B:22 server_A

从ssh手册中得知:

-L [bind_address:]port:host:hostport
指定本地(客户端)主机上的给定端口将被转发到远程端的给定主机和端口。这通过分配一个套接字来监听本地端口实现,可选择绑定到指定的bind_address。每当连接到该端口时,连接都会通过安全通道转发,并从远程计算机向主机端口hostport建立连接。

因此,要将文件发送到服务器B,请从您的工作站执行以下操作:

scp -P 2222 Your_file 127.0.0.1:/PATH_ON_SERVER_B

祝您有美好的一天。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接