ฉันมีอุปกรณ์บางอย่างเชื่อมต่อกับเซิร์ฟเวอร์คำศัพท์อนุกรมของ Cisco; ทำงานได้ดีมากเมื่อฉันtelnetโดยตรงไปยังพอร์ตใน Cisco อย่างไรก็ตามฉันมีอุปกรณ์ที่ดื้อรั้นไม่กี่ตัวที่จะไม่ใช้Backspaceเนื่องจากถูกแมปใน telnet โดยค่าเริ่มต้น
ในกรณีที่มีความสำคัญฉัน telnet จากrxvtภายใต้ Debian squeeze (ใน X Window) TERMถูกตั้งค่าให้rxvtแต่มันไม่สำคัญว่าผมใช้vt100, vt101หรือxterm... การเปลี่ยนแปลงTERMจะไม่มีผล ผมเริ่มลงที่ถนนของการเปลี่ยนแปลงTERMขึ้นอยู่กับสิ่งที่ฉันเห็นในเก่ามิตคำถามที่พบบ่อย FWIW stty erase ^hและstty erase ^?ไม่ทำงานเช่นกัน
ฉันสังเกตเห็นว่าBackspaceอุปกรณ์เหล่านี้ทำงานอย่างถูกต้องหากฉันใช้ซ็อกเก็ต TCP แบบดิบจากnetcat... เช่นnc 192.168.12.117 2006; อย่างไรก็ตามจากนั้นฉันพบปัญหาอื่น ๆ เกี่ยวกับรหัสผ่านที่ไม่ซ่อนหรือการสลับหน้าจอเทอร์มินัล
ฉันจะเลือกบังคับ telnet และ ssh เพื่อแม็พBackspaceกับCtrlHอุปกรณ์เหล่านี้ได้อย่างไร? นอกจากนี้ฉันควรใช้เกณฑ์ใดในการประเมินว่านี่เป็นข้อบกพร่องในอุปกรณ์หรือไม่
แก้ไข
ในกรณีที่มันเป็นเรื่องสำคัญนี้เป็นผลผลิตจากshowkey -aคีย์ในคำถาม ... ^?สอดคล้องกับการBackspaceและเป็น^H CtrlHดูเหมือนว่าฉันควรจะเข้าใกล้เมื่อฉันดูThe Linux Keyboard และ Console Howtoแต่ฉันไม่สามารถถอดรหัสสิ่งที่ฉันสามารถทำได้เพื่อเปลี่ยนสิ่งนี้ ฉันได้ลองใช้คาถาต่างๆโดย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]$
ssty erase '^?'ไหม หากอุปกรณ์ยืนยันใน aC-hนั่นไม่ใช่การโทรของ telnet นั่นคือเทอร์มินัล (อีมูเลเตอร์)