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 件のコメント:
コメントを投稿