如何通过scp命令通过跳转机将文件复制到远程机器

时间:2013-07-31 00:49:37

标签: ssh scp

说目标机器是user@B.com,唯一登录的地方是user@A.com(通常称为跳跃机器)
以及如何使用 scp 命令将本地文件复制到计算机 B
我试过scp files user@B.com但没有任何反应,它只告诉我操作超时

2 个答案:

答案 0 :(得分:1)

我不确定这是最好的解决方案,但是,您可以在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。每当与此端口建立连接时,   连接通过安全转发                通道,并与远程计算机上的主机端口主机端口建立连接

所以要从工作站将文件发送到服务器B:

scp -P 2222 Your_file 127.0.0.1:/PATH_ON_SERVER_B

度过愉快的一天。

答案 1 :(得分:0)

这就是您要找的:

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

来自 scp 手册页:

<块引用>

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