2015年4月5日日曜日

CentOSのTelnetクライアントから、Windows7のMicrosoft Telnetサーバへ接続すると、PowerShellが起動しない問題

CentOSのTelnetクライアントから、
Windows7のMicrosoft Telnetサーバへ接続すると、PowerShellが起動できない。

画面が真っ暗なまま反応がない。

もちろん、サーバ側でのPowerShell起動は問題なし。
試しにクライアント側をWindowsに変えて、Telnet接続してみるとPowerShellが起動する。

あれこれ試行錯誤し、exitを入力するとプロンプトが戻ってきた。
つまり、PowerShell自体は起動しているが、サーバ側の出力情報がクライアント側へ正しく伝わっていない。

サーバ~クライアント間の通信を見るために、Windumpでパケットを確認する。
すると、TerminalTypeの情報交換がうまくいっていなかった。
 
サーバ 「TerminalType教えて」
クライアント 「xterm」
サーバ 「...TerminalType教えて」
クライアント 「xterm」
サーバ 「」

Windows7のTelnetが認識できるTerminalTypeは「vt100、vt52、ansi、vtnt」のみ。
それなのに、CentOSがxtermを返答していたため、情報が正しく伝わっていなかった。

CentOSの環境変数TERMをvt100に変更してみたところ、PowerShellのプロンプトが表示された。
[root@localhost ~]# sh
sh-4.2# export TERM=vt100
sh-4.2# echo $TERM
vt100
sh-4.2# telnet

なお、Windows8以降はxtermでも問題ないようで、Windows8.1で試したところ大丈夫だった。


<参考>
Telnet 端末の種類を構成する

0 件のコメント:

コメントを投稿