Вызывать локальную команду при каждом успешном соединении при использовании 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
двоичный файл или в функции оболочки, или в скрипте кажется, что он не будет работать, потому что он не может знать, было ли соединение успешным, пока он не завершится.