じゅのぶろ

社内SEが自宅でSOC/CSIRTするために色々頑張っていきたいブログ 画像が見れない場合はjavascriptを有効にするかデスクトップからご覧下さい。

ssh先のキーボードレイアウトがおかしい

先日インストールしたばかりのkali linuxにてsshログインを試みたものの
ssh先のキーボードレイアウトが、
矢印キーやバックスペースがタブ?に置き換えられて文字入力に困ったため修正した際のメモ。

「stty erase ^H」で症状が回復するという記事がチラホラあった、「stty -a」で現状を確認する。

jnox@kali:~$ stty -a
speed 9600 baud; rows 68; columns 328; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = <undef>; start = ^Q; stop = M-^?; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe -echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc


jnox@kali:~$ stty erase "^H"

backspaceを押すと以下の文字が表示されるようになってしまった。 どうやらここが原因ではないらしい。

jnox@kali:~$ ^?^?^?^?^?

以下のコマンドでもとに戻した。

jnox@kali:~$ stty erase "^?"

もう少し現状を整理すると以下がわかった。 - 症状1 1文字入力後バックスペースを入力すると1文字分のスペースが、 2文字入力後バックスペースを入力すると2文字分のスペースが現れる。 - 症状2 上矢印で履歴を遡ると現在の表示は消えず、行末にプロンプトごと追記される。

//症状1
jnox@kali:~$ a 
jnox@kali:~$ aa  
jnox@kali:~$ aaa
//症状2
will@kali:~$ stty erase "^?"will@kali:~$ ^?^?^?^?^?        

画面のflushができていないのかと思い、resetコマンドを売ってみると「unknown terminal type」とでてしまった。 「screen.linux」を入力すると画面がresetされるが先程の症状は改善しない。

will@kali:~$ reset
reset: unknown terminal type linux
Terminal type? 
Terminal type? 
Terminal type? xterm
reset: unknown terminal type xterm
Terminal type? linux
reset: unknown terminal type linux
Terminal type? vt102
reset: unknown terminal type vt102
Terminal type? rxvt
reset: unknown terminal type rxvt
Terminal type? screen.linux

どうやらTERM変数に値を入れないとダメなようである。 ~/.profileにexportコマンドをセットしログイン時に読み込むようにする。(~/.bashrcや~/etc/bash_profile等設定が読み込まれるようなファイルに追記してください。)

echo 'export TERM=screen.linux' >> ~/.profile

これで私の環境では正しくバックスペース、矢印キーが効くようになりました。

たしか容量の都合で「Kali Linux Light 64-Bit」をいれたのですが、初心者向けではないですね。。。