首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单个连接中的scp+ssh+scp

单个连接中的scp+ssh+scp
EN

Unix & Linux用户
提问于 2021-09-20 12:11:12
回答 3查看 190关注 0票数 0

我不知道名称,但基本上我们的公司环境是由跳线者设置的,所以创建一个ssh隧道真的很慢。因此,我希望有一些方法可以在一个ssh命令中执行这三个步骤:

代码语言:javascript
复制
$ scp localfile.jar user@server:~/path/ # upload executable
$ ssh user@server java -jar path/localfile.jar some argument >path/output.bin # run it
$ scp user@server:~/path/output.bin . # download output

这就是方法。有办法吗?(服务器无法访问我的本地机器,但这可能是显而易见的。)谢谢!

EN

回答 3

Unix & Linux用户

发布于 2021-09-20 16:32:58

除非它被特别禁用,否则您可以尝试多路复用。这仍然是几个命令,但由于它只使用初始的主连接进行身份验证,其余的命令通过该预验证通道运行,您应该会发现它运行得更快:

代码语言:javascript
复制
# Set up master connection to target system
ssh -S "$HOME/.ssh.sock" -M -o ControlPersist=yes -fN user@server

# Perform the commands using the master connection
scp -o ControlPath="$HOME/.ssh.sock" localfile.jar user@server:path/
ssh -S "$HOME/.ssh.sock" user@server java -jar path/localfile.jar some argument >path/output.bin

# Tear down the master connection when you have finished
ssh -S "$HOME/.ssh.sock" -O exit user@server

您不需要示例集中的最后一个命令,因为您的ssh命令已经将其输出放入本地文件path/output.bin

您可以为主会话指定一个超时,这样如果您停止使用它而忘了关闭它,它将自动结束(例如,ControlPersist=60而不是ControlPersist=yes,超时一分钟)。

如果经常执行这些操作,则可能值得使用~/.ssh/ssh_config重新定义目标server的首选默认设置。

票数 3
EN

Unix & Linux用户

发布于 2021-09-26 12:53:49

不确定跳转到图片中的位置,但这3条命令可以通过以下方式完成:

代码语言:javascript
复制
< localfile.jar gzip -3 |
  ssh user@server '
    gunzip > path/localfile.jar &&
      java -jar path/localfile.jar some argument | gzip -3
' | gunzip > output.bin

其中,该localfile.jar是在ssh的stdin上被压缩的,它将被转发到远程外壳的stdin,最后是将其转储到远程文件中的gunzip

类似地,java的输出在stdout上被压缩,并在本地动态解压缩以存储在本地output.bin上。

票数 1
EN

Unix & Linux用户

发布于 2021-09-20 12:58:43

sh+expect

  1. 用所有三个命令编写一个sh脚本--您仍然需要输入三次密码,但与手动命令相比仍然更容易。
  2. 一旦您有了脚本,您就可以使用expect并使用它来填充密码。但是这可以被认为是不安全的,因为在expect中,您必须公开地在脚本中存储密码。

就我个人而言,我经常在第一个解决方案上停下来--输入我的密码几次并不难(只是很烦人)。但是如果安全环境允许的话- expect可以创造奇迹/

票数 -1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/669824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档