-T と -t を指定して同じ ssh コマンドを実行すると、stderr 出力はそれぞれ stderr と stdout に到着します。
pty が割り当てられていません:
ssh -T user@host "echo >&2 foo" 1>/tmp/out 2>/tmp/err
出力は に書き込まれ/tmp/err
ます。
pty 割り当てあり:ssh -t user@host "echo >&2 foo" 1>/tmp/out 2>/tmp/err
出力は に書き込まれ/tmp/out
ます。
pty を使用すると完全な疑似画面がシミュレートされ、出力が raw モードであることはある程度理解できます。画面に送信された出力は、stdout 経由で ssh に送信され、ssh の tty も raw モードに設定されます。誰かがそれをさらに説明してもらえますか?