我不喜欢叫scp两次。
我需要通过ssh连接到box1,再连接到boxNAME。如何将文件从boxNAME复制到本地驱动器?另外,如何将文件从本地驱动器复制回boxNAME?
或者,如果我能够抓取一个文件(其中一个)并输出它,并将它作为另一端的stdin使用,这也同样有效。(文件为<4k和文本)。如果您可以告诉我如何创建文本文档并使用stdout编写和保存(请记住,这是跨两个连接,而不是本地连接,在这种情况下,我会执行cat文件>>out.txt)。
发布于 2009-09-17 16:45:48
你试过这样的东西吗?
ssh user@host1 "ssh user@host2 'cat file.txt' " > local_file.txt发布于 2009-09-17 16:50:07
我认为最简单的方法可能是简单地使用端口转发。启动一个会话到中间框,并转发一些端口以允许ssh连接到远端主机。然后,只需使用scp通过您的端口前进。
如果您需要定期这样做,您可以创建一个使用ProxyCommand指令的ssh配置。
Host farhost
ProxyCommand /usr/bin/ssh username@intermediate "/bin/netcat -w 1 farhost 22"
User username考虑到上面这样的内容,您可以连接到远程主机,就好像它是直接连接的一样。为了使其工作最好,您将希望设置基于密钥的身份验证。
https://serverfault.com/questions/66327
复制相似问题