perto o suficiente:
timeout -5s "ssh $line true"
Isto é:
-
Use aspas corretas.
timeout 'ssh …'
não pode funcionar aqui, porque significa "run 'ssh', capture sua saída, então dê a saída para 'timeout'." -
Execute o ssh no modo "batch", isto é, dê a ele um comando para executar. Sem ele, o ssh será executado no modo interativo e ficará suspenso para sempre, mesmo em conexões bem-sucedidas.
Você também pode tentar:
ssh -o ConnectTimeout=5s $line true