我有一组服务器都正确配置了SSH代理转发.这是典型的堡垒服务器样式配置,您可以从外部连接到的唯一一台机器是服务器A.从服务器A,您可以使用代理转发连接到服务器B,C,D等.它们都运行良好.
有时我想将文件从我的本地机器复制到服务器B.为了做到这一点,我必须首先将文件scp到服务器A.然后ssh到服务器A并将文件scp到服务器B.然后我从中删除文件服务器A.
有没有办法在我本地计算机上执行的一个命令中通过服务器A将文件直接从我的计算机复制到服务器B?
如果您的sshd配置为允许TCP转发,那么您可以通过A设置从计算机到B的隧道,然后使用它来复制
内容.创建隧道
ssh -f -L 2050:B:22 A -N
> -f后台ssh命令让你的终端重新使用.
> -L 2050:B22将localhost端口2050绑定到主机B端口22
> -N不执行远程命令.
然后从你的电脑复制到B.
scp -P 2050 filetocopy localhost:/destination/path
编辑:
如果你使用
ssh -L 2050:B:22 A -N &
然后,当它背景时,你将被告知ssh命令的PID.