Loading... # 背景 最近项目需求中提到使用sftp进行文件上传,但是生产服务器是无法直接连接的,需要通过堡垒机连接,概念图如下。 ![image.png](https://www.zunmx.top/usr/uploads/2021/08/4170863830.png) 本博文即将要实现的内容如下图所示。 ![image.png](https://www.zunmx.top/usr/uploads/2021/08/1006400338.png) # 摘要 也就是说,当我们创建一个新的进程的时候,运行当前脚本的的shell将会在运行这个命令后进入阻塞状态,等待这个进程结束后才会继续。也就是如上图实际运行情况所示。但是并不符合我们的预期。 换句话说,也就是我们第一行写的是运行一个程序,第二行是第一行运行的那个程序中需要执行的输入,而我们的写法并不会输入到第一行运行的那个程序中。 # 实际实现 ```bash echo Processing... sftp mysftp@127.0.0.1 put test.sh /upload/test.sh echo Done... ``` ![image.png](https://www.zunmx.top/usr/uploads/2021/08/2433648917.png) ```bash echo Processing... sftp mysftp@127.0.0.1 <<- EOF put test.sh /upload/test.sh exit EOF echo Done... ``` ![image.png](https://www.zunmx.top/usr/uploads/2021/08/1892260593.png) 上图皆可说明情况。 # 解释 在这种情况下,目前还没有实现输入密码,但是巧的是,真正项目上是通过RSA进行验证的,不需要密码,由于是Demo和时间关系,没有做那些东西,但是PUT命令的输入地点是正确的,达成了最终目的。 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏