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」をいれたのですが、初心者向けではないですね。。。