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

0 ответов

Другие вопросы по тегам