`pseudo-tty` とは?

Why?

pseudo-ttyとは?

  • pseudo-tty( text-terminal ) = 疑似端末
    • pseudo = 擬似
    • tty = 標準入出力となっている端末デバイス(制御端末、controlling terminal)の名前を表示するunixコマンドである。元来ttyとはteletypewriter(テレタイプライター)のことを指す。
$ tty
/dev/ttys000
$ ls /dev/ttys*
/dev/ttys0  /dev/ttys2  /dev/ttys5  /dev/ttys8  /dev/ttysb  /dev/ttyse
/dev/ttys000    /dev/ttys3  /dev/ttys6  /dev/ttys9  /dev/ttysc  /dev/ttysf
/dev/ttys1  /dev/ttys4  /dev/ttys7  /dev/ttysa  /dev/ttysd

ssh -T とは?

  • sshで接続テストをする際のTオプションの説明
 -T      Disable pseudo-tty allocation.
  • Disable pseudo-tty allocation = 疑似端末の割当を無効化する

  • どういうときに使うか?

    • shell accessが許可されていない端末へsshアクセスする場合
      • e.g. githubへの共通鍵を登録ができているかのチェック
  • 何が嬉しいのか?
    • githubはshell accessを許可していないので、PTY(pseudo-tty) allocation requestが通らずconnectionが閉じてしまう
$ ssh github-kz-engineer
PTY allocation request failed on channel 0
Hi kz-engineer! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
$ ssh -T github-kz-engineer
Hi kz-engineer! You've successfully authenticated, but GitHub does not provide shell access.
  • -tオプションの方が使われている?
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful,

TODO List

  • TODO: pseudo-tty( text-terminal ) = 疑似端末の理解が曖昧
  • TODO: /dev/ttys* にどんなものがあるか調べる
  • TODO: ttyとかptsとかの明確な理解
  • TODO: ssh -tオプション