Meu palpite é que scp usa a função getpass para ler a senha. Do manual da glibc :
It tries to connect to the real terminal,
/dev/tty, if possible, to encourage users not to put plaintext passwords in files; otherwise, it usesstdinandstderr.