De o bom manual para ssh(1)
podemos encontrar
EXIT STATUS
ssh exits with the exit status of the remote command or with 255 if an
error occurred.
que parece contradizer sua reivindicação; com alguns testes, pode-se descobrir
$ ssh [email protected] true; echo $?
0
$ ssh [email protected] false; echo $?
1
$
(a menos que uma tenha uma função de shell que mascara o comando real ssh
; tente o caminho completo para ssh
para evitar que, se for esse o caso) que aponta para a construção [[ $? ]]
como sendo problemática; isso é fácil de testar e provar
$ true; [[ $? ]] && echo yea
yea
$ false; [[ $? ]] && echo yea
yea
$
Então, pode-se usar um teste de igualdade nos moldes de
$ true; [[ $? -eq 0 ]] && echo yea
yea
$ false; [[ $? -eq 0 ]] && echo yea
$