使用 ssh 多路复用时每次成功连接时都调用本地命令?

使用 ssh 多路复用时每次成功连接时都调用本地命令?

我希望每次通过 ssh 成功连接到远程主机时自动运行一个命令。

我可以使用我的PermitLocalCommand yes和条目对每个主机的第一次连接执行此操作,类似于LocalCommand ~/bin/ssh-notify-me~/.ssh/config这个答案但我也使用了相当激进的 ssh 多路复用配置(大致如下):

Host *
PermitLocalCommand yes
ServerAliveCountMax 2
ServerAliveInterval 5
ControlPath ~/.ssh/mux/%r@%h:%p
ControlMaster auto
ControlPersist 1h

使用此设置,LocalCommand 仅在控制主/多路复用套接字存在之前的第一个连接中执行。此后,我连接了,但命令没有运行。

有没有什么方法(不禁用多路复用)可以确保在每次打开新的交互式会话时都会发生 LocalCommand 或某些等效操作?

将二进制文件包装ssh在 shell 函数或脚本中似乎不起作用,因为它只有在完成后才能知道连接是否成功。

相关内容