说目标机器是user@B.com
,唯一登录的地方是user@A.com
(通常称为跳跃机器)
以及如何使用 scp 命令将本地文件复制到计算机 B
我试过scp files user@B.com
但没有任何反应,它只告诉我操作超时
答案 0 :(得分:1)
我不确定这是最好的解决方案,但是,您可以在ssh中使用tcp端口转发功能。
首先确保跳转机器具有Tcp Forwarding启用查看sshd_config文件,通常位于目录“/ etc / ssh /”中。 检查您是否有条目:
AllowTcpForwarding no
默认情况下启用TcpForwarding,因此如果没有禁用它,则认为没问题。
您将在跳跃计算机上建立连接,并在系统上本地创建端口,以便直接与系统B通信
在您的工作站上运行的ssh命令将是:
ssh -L 2222:server_B:22 server_A
-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)。