Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
我有两个困难。
第一季度。
我使用ssh userA@servA从本地终端登录到“serva”,然后从“serva”使用ssh userB@servB和cd登录到“servb”上的工作目录并执行“programa”(servb不能从本地连接)。每次我需要手动执行此过程并输入密码两次(一次用于serva,一次用于servb)。
我可以通过在本地终端运行bash脚本来完成上面的过程吗?
问题2。
我想把数据从本地复制到servb,反之亦然。目前,我使用scp将数据从本地复制到serva,然后从serva复制到servb。是否有在本地和SERVB之间直接传输数据的解决方案?

最佳答案

最简单的方法是使用到serva的ssh连接来设置隧道:

ssh -L50022:servB:22 user@servA

然后,您可以通过访问localhost:50022连接到servb上的ssh守护进程,会话被转发或“隧道”到servb:
ssh -p 50022 user@localhost


scp -P 50022 /some/local/file user@localhost:/home/user/

你可以把它放进一个脚本中使之自动化。但是,您必须注意第一个调用(设置隧道)不会阻塞脚本:
ssh -T -L50022:servB:22 user@servA &
scp -P 50022 /some/local/file user@localhost:/home/user/

09-20 08:19