Eu gostaria de executar automaticamente um comando toda vez que eu conecto com sucesso a um host remoto via ssh.
Eu posso fazer isso para a primeira conexão com cada host usando as entradas PermitLocalCommand yes
e LocalCommand ~/bin/ssh-notify-me
no meu ~/.ssh/config
, semelhante a esta resposta mas também estou usando uma configuração de multiplexação ssh bastante agressiva (aproximadamente a seguinte):
Host *
PermitLocalCommand yes
ServerAliveCountMax 2
ServerAliveInterval 5
ControlPath ~/.ssh/mux/%r@%h:%p
ControlMaster auto
ControlPersist 1h
Com esta configuração, o LocalCommand é executado somente para a primeira conexão antes de existir um soquete mestre / mux de controle. Depois disso, eu me conecto, mas o comando não é executado.
Existe alguma maneira (sem desabilitar o muxing) para garantir que LocalCommand ou algum equivalente ocorra para cada nova sessão interativa aberta?
Quebra de ssh
binário em uma função de shell ou script parece não funcionar, porque não é possível saber se a conexão foi bem-sucedida até que seja concluída.
Tags command-line ssh multiplexing