我希望每次通过 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 函数或脚本中似乎不起作用,因为它只有在完成后才能知道连接是否成功。