我不喜欢叫SCP两次。
我需要通过ssh再次连接box1到boxNAME。 如何从boxNAME复制文件到我的本地驱动器? 也如何从我的本地驱动器复制文件回到boxname?
或者,如果我可以抓住一个文件(任一),并输出它,并使用它作为一个stdin在另一边工作,以及。 (这些文件是<4K和文本)。 奖金点,如果你可以告诉我如何创build一个文本文件,并使用标准输出写和保存(记住这是跨2连接不本地在这种情况下,我会做的文件>> out.txt)
你有没有尝试过这样的事情?
ssh user@host1 "ssh user@host2 'cat file.txt' " > local_file.txt
我认为最简单的方法可能是简单地使用端口转发。 开始一个会话到中间框,并转发一些端口,以允许ssh连接到远端主机。 然后简单地通过你的端口使用scp。
如果您需要定期执行此操作,则可以创build使用ProxyCommand指令的sshconfiguration。
Host farhost ProxyCommand /usr/bin/ssh username@intermediate "/bin/netcat -w 1 farhost 22" User username
给定类似上面的东西,你可以连接到远端主机,就好像它是直接连接的。 为了达到最佳效果,您需要设置基于密钥的身份validation。