Assumindo bash
:
for server in $(cat server.txt)
do
scp file.txt "$server":/tmp/
done
Modo paralelo (não use isso se server.txt for enorme, pois você pode ficar sem largura de banda, interromper as conexões e, em seguida, ter dificuldade em descobrir o que foi bem-sucedido e o que falhou):
for server in $(cat server.txt)
do
scp file.txt "$server":/tmp/ &
done
wait
Conforme solicitado, agora com suporte a senha:
while read SERVER PASSWORD
do
sshpass -p "$PASSWORD" scp file.txt "$SERVER":/tmp/
done <./server.txt
Coloque, em server.txt
, o nome do host do primeiro servidor, espaço, a senha do primeiro servidor na primeira linha e assim por diante.