为什么 stdin 已经用完后 ssh 还能读取我的密码?

为什么 stdin 已经用完后 ssh 还能读取我的密码?

例如,以下命令有效:

$ cat some-file | md5sum
8981da1a6a4838c915e333820640d213  -
$ cat some-file | ssh user@host "md5sum"
user@host's password:
8981da1a6a4838c915e333820640d213  -

为什么ssh能够获取用户的密码?我假设它从标准输入读取密码,但显然情况并非如此。

答案1

tty 就是答案,它从 /dev/tty 读取。除了标准输出之外,程序也可以写入它。

相关内容