Tente colar isto:
ssh user@host 'read foo; echo ">>$foo<<"'
echo bar
Você verá >>echo bar<< como saída do echo no servidor.
Isso significa que ssh irá alimentar os dados colados em sua entrada padrão, como se você tivesse feito
echo 'echo bar' | ssh user@host 'read foo; echo ">>$foo<<"'
A solução para isso, além de nunca colar comandos shell no terminal para executá-los, é usar ssh -n , que redirecionará /dev/null para ssh :
ssh -n user@host 'echo foo'
echo bar
Infelizmente eu não sei a mecânica da colagem, então eu não posso dizer nada inteligente sobre por que os dados colados acabam no fluxo de entrada padrão de ssh , mas eu sou supondo que tem a ver com o fluxo sendo herdado do shell interativo (que lê os comandos da entrada padrão).
Usar ssh -n também é a solução (ou pelo menos a solução) para a questão
while read something; do
ssh user@host 'somecommand'
done <inputfile
Aqui, o loop só será executado uma vez, pois ssh come os dados de inputfile .