Tty é a resposta, lê de / dev / tty. Um programa pode escrever para ele também, além do stdout.
Por exemplo, o seguinte comando funciona:
$ cat some-file | md5sum
8981da1a6a4838c915e333820640d213 -
$ cat some-file | ssh user@host "md5sum"
user@host's password:
8981da1a6a4838c915e333820640d213 -
Por que o ssh é capaz de obter a senha do usuário? Eu assumi que ele leu a senha do stdin, mas claramente não é o caso.