如何正确使用 ssh ControlMaster

如何正确使用 ssh ControlMaster

我有一个通过 ssh 远程运行多个命令的脚本。我单独运行每个命令,因为我想在执行之间做其他事情。

但是,我不想每次发出新命令时都重新创建 ssh 会话。我已经读过,-oControlMaster但我似乎无法让它发挥作用。

当我跑步时:

ssh -oControlMaster=yes -oControlPath=/tmp/test.sock root@host

输入密码后,我就会得到一个 ssh 会话。如果我退出,则/tmp/test.sock无法找到该文件。

我缺少什么?

答案1

您可以使用该ControlPersist选项在与服务器断开连接后离开套接字。

例如,在我的 ssh 配置文件中,我有这个片段,它使连接保持打开状态 3 秒。

主持人 *
   控制大师自动
   ControlPath ~/.ssh/master-socket/%r@%h:%p
   #ControlPath /run/user/%i/sshmasterconn-%C
   #ControlPath ~/.ssh/%r@%h:%p
   控制持续3秒

答案2

主连接需要打开,其他连接才能使用主连接。

套接字文件仅在主连接打开时可用。如果关闭主连接,则套接字文件将被删除。如果主连接关闭,则任何打开的“从”连接都将被关闭。

相关内容