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에서 읽습니다. 표준 출력 외에도 프로그램에서 표준 출력에 쓸 수도 있습니다.

관련 정보