telnet / sshでバックスペースにcrtl-Hを使用するように強制する

telnet / sshでバックスペースにcrtl-Hを使用するように強制する

Cisco Serial Term Server には複数のデバイスが接続されていますが、telnetCisco ポートに直接接続すると、多くのデバイスが正常に動作します。ただし、BackspaceデフォルトではTelnetにマッピングされているため、使用しない頑固なデバイスがあります。

場合に備えて、rxvtDebian squeezeからリモートで(X Windowで)ログインしました。 TERMに設定されていますが、または...をrxvt使用して変更しても効果はありません。プロジェクトで見たことに基づいて変化の道を歩き始めました。vt100vt101xtermTERMTERM旧コミットに関するよくある質問。 FWIW、stty erase ^hそれもstty erase ^?動作しません。

生のTCPソケットを使用するとBackspace...これらのデバイスでは正常に動作しますが、パスワードが隠されていないか、端末ページングに関連する他の問題があります。netcatnc 192.168.12.117 2006

telnetとsshがこれらのデバイスBackspaceに選択的にマッピングされるようにするにはどうすればよいですか?CtrlHまた、これがデバイスのバグであるかどうかを評価するためにどの基準を使用する必要がありますか?

編集する

showkey -a重要な場合、合計に対応する関連キーの出力は次の^?とおりです。Backspaceもう少し詳しく見なければなりません。^HCtrlHLinux キーボードおよびコンソールガイドしかし、これを変更するために何ができるかを解読できないようです。いろいろな注文を試してみましたが、loadkeys何も機能しません。

[mpenning@hotcoffee docs]$ sudo showkey -a

Press any keys - Ctrl-D will terminate this program

^?      127 0177 0x7f
^H        8 0010 0x08

関連出力も含まれていますdumpkeys。これは私のシステムの現在のマッピングです(いくつかの問題があるデバイスでは機能しません)。Backspace同じことを行う方法を理解できる場合は、CtrlH解決策があります。

[mpenning@hotcoffee docs]$ sudo dumpkeys | grep -Ei "backspace|127"
keycode   8 = BackSpace        ampersand        braceleft       
keycode  14 = BackSpace        Delete          
        control keycode  14 = BackSpace       
keycode 127 =
[mpenning@hotcoffee docs]$

ベストアンサー1

ついに答えを見つけました。アンバレタのLinuxキーボード数値の殿堂...のように見えるxterm/でキーマッピングを変更してもrxvt利点はありません。telnet

Telnet接続をスニッフィングしたときにこれを確認しました。まず、TelnetセッションをスニッフィングしてホストにBackspace送信されることを確認しました。次に、意図的に使用を0x7f中止しました(したがって、バックスペースキーをドル記号にマッピング)。これを行った後、バックスペースを押す必要がありますが、リモートホストで使用している場合でも転送されます。Backspacerxvtstty erase $rxvt$rxvttelnet0x7fBackspace

解決策

(下)というスクリプトを作成し、kbdfix権限を使用して実行可能にします。755展開アーカイブからtclshパッケージをロードする必要があります。expect

#!/usr/bin/expect

#Name this file as kbdfix and make it executable in your path
eval spawn -noecho $argv

interact {
 \177        {send "\010"}
 "\033\[3~"  {send "\177"}
}

これで、破損したホストに接続するためにと入力してkbdfix telnet 192.168.12.117 2006くださいBackspace

上記の2006年に混乱している人のための注意事項...これは、Cisco用語サーバーが破損したデバイス(この場合はBrocade FCXスイッチ)のコンソールへのシリアル接続に使用するTCPポートです。

Backspace気に入らないデバイスにkbdfix telnet <addr_of_the_broken_device>Telnetを接続する場合kbdfix ssh 172.16.1.26

おすすめ記事