Abbiamo risolto questo problema aggiungendo l'aggiunta di -n (per reindirizzare std da /dev/null) e -t (forza l'allocazione pseudo-tty)
Esempio:
ssh -t -n example@unixlinux.online command
Il problema era davvero il mio script di accesso, anche se non aveva a che fare con la richiesta di un terminale (l'avevo sospettato e testato con -t e -T opzioni). Il problema era che il mio .bashrc stava eseguendo un exec (in questo caso a zsh - perché il nostro sistema non consente chsh a zsh ).
La riga incriminata:
test -f /usr/bin/zsh && exec /usr/bin/zsh
Risolto controllando prima la shell interattiva e uscendo in tal caso:
[ -z "$PS1" ] && return
test -f /usr/bin/zsh && exec /usr/bin/zsh
Quindi, essenzialmente, perché la shell era in esecuzione in zsh , ssh stava aspettando che finisse, cosa che non è mai accaduta.
Sono un po' confuso sul perché il mio .bashrc veniva chiamato - pensavo fosse solo per shell interattive, ma lo scopo esatto e l'ordine dei vari script di init è qualcosa che non credo che imparerò mai.
Spero che questo possa essere utile ad altri che hanno una sorta di exec nei loro script di avvio.
A proposito, le altre due risposte erano sulla strada giusta, quindi non ero completamente sicuro se avrei dovuto "rispondere" o semplicemente commentare le loro risposte. Se rispondere alla mia stessa domanda è moralmente sbagliato su StackOverflow, fammelo sapere e farò penitenza. Grazie agli altri risponditori.