O script original é (eu acho) correto, exceto pela ordem dos redirecionamentos. Troque-os para que o primeiro stderr seja enviado para stdout e, em seguida, redirecione o stdout para o arquivo (deixando stderr inalterado). Isso fornece um arquivo de saída limpo e quaisquer erros armazenados na variável.
Não testado, mas é assim que deve funcionar.
Então, a primeira linha de script deve ser ...
status=$(ssh-keyscan -T 5 $remotehost 2>&1 >> ~/.ssh/known_hosts )