Isso deve fazer o trabalho:
#!/bin/bash
for i in *.cfg; do
sshpass -f /path/to/passwordfile scp ${i%.cfg}.txt username@${i%.cfg}:
done
ou melhor
for i in *.cfg;do sshpass -f /path/to/passwordfile scp ${i%.cfg}.txt username@${i%.cfg}:;done
A senha é passada para scp usando sshpass (seguindo Como passar password to scp? ) que lê a partir de passwordfile - lembre-se de proteger este arquivo contra acesso de leitura não autorizado com chmod 400 !
Eu fiquei um pouco confuso com o arquivo que você quer enviar aqui, eu entendi que existe um arquivo ABC123.txt que tem que ser enviado para hospedar ABC123 , então eu apenas tirei .cfg usando Expansão do Parâmetro Bash e adicionou .txt .
Como user@host: é o diretório inicial do user , eu removi o caminho.