Tôi có một số thiết bị được kết nối với máy chủ nối tiếp của Cisco; nhiều hoạt động tốt khi tôi telnet
trực tiếp đến cổng trên Cisco. Tuy nhiên, tôi có một vài thiết bị cứng đầu sẽ không sử dụng Backspacevì nó được ánh xạ trong telnet theo mặc định.
Trong trường hợp có vấn đề, tôi telnet từ rxvt
Debian ép (trong Cửa sổ X). TERM
được thiết lập để rxvt
, nhưng nó không quan trọng cho dù tôi sử dụng vt100
, vt101
hoặc xterm
... thay đổi TERM
không có tác dụng. Tôi bắt đầu con đường thay đổi TERM
dựa trên những gì tôi thấy trong Câu hỏi thường gặp về Kermit cũ . FWIW, stty erase ^h
và stty erase ^?
cũng không hoạt động.
Tôi đã nhận thấy rằng Backspacehoạt động chính xác trên các thiết bị này nếu tôi sử dụng ổ cắm TCP thô từ netcat
... tức là nc 192.168.12.117 2006
; tuy nhiên, sau đó tôi gặp phải các vấn đề khác với mật khẩu không bị ẩn hoặc phân trang đầu cuối.
Làm cách nào tôi có thể buộc chọn telnet và ssh để ánh xạ Backspacetới CtrlHcác thiết bị này? Ngoài ra, tôi nên sử dụng tiêu chí nào để đánh giá xem đây có phải là lỗi trong thiết bị không?
BIÊN TẬP
Trong trường hợp có vấn đề, đây là đầu ra từ showkey -a
cho các phím trong câu hỏi ... ^?
tương ứng với Backspacevà ^H
là CtrlH. Có vẻ như tôi nên đến gần khi nhìn vào Bàn phím và Bàn điều khiển Linux , nhưng dường như tôi không thể giải mã những gì tôi có thể làm để thay đổi điều này. Tôi đã thử các câu thần chú khác nhau loadkeys
mà không có hiệu quả.
[mpenning@hotcoffee docs]$ sudo showkey -a
Press any keys - Ctrl-D will terminate this program
^? 127 0177 0x7f
^H 8 0010 0x08
Tôi cũng bao gồm cả đầu ra có liên quan từ dumpkeys
... đây là ánh xạ hiện tại trong hệ thống của tôi (không hoạt động trên một số thiết bị được đề cập). Nếu tôi có thể tìm ra cách để Backspacelàm điều tương tự CtrlH, tôi sẽ có một giải pháp.
[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 '^?'
chưa Nếu các thiết bị nhấn mạnh vàoC-h
, đó không phải là cuộc gọi của telnet, thì đó là thiết bị đầu cuối (trình giả lập).