web-dev-qa-db-ja.com

ssh-疑似端末の割り当てを無効にする

sshクライアントオプション「-T」は、疑似端末の割り当てを無効にします。

このオプションをオンにすると、リモートsshdはリモートコマンドを実行するためのptyを割り当てません。リモートコマンドの出力はどのようにsshクライアントに転送されますか?私が知っているように、sshクライアントとサーバー間の単純な入出力は次のとおりです。

ssh client <--- (TCP/IP) --> ssh server <---> ptm <---> pts <---> remote command

オプション-Tを使用すると、sshdがリモートコマンドを実行するためのptyペアを作成しないことを意味しますか?

1
liugang

_-T_を使用してpty割り当てをオフにすると、sshdは双方向ptyの代わりにパイプのペアを使用して、リモートコマンドを実行しているプロセスと通信します。

それがどこにも文書化されていない場合は、OpenSSHソースコードの do_exec_no_pty() 関数を見ることができます。 dropbear(別のsshd実装)も同様のことをしています。

Pty isが割り当てられている場合(_-t_オプションまたはリモートコマンドが指定されていない場合)、リモートマシンには1つのptyのみが割り当てられます。クライアントsshはローカルマシンにptyを割り当てません。それがttyの場合は、stdinでrawモードをオンにするだけです。

3
Uncle Billy