No se puede ingresar un carácter de barra diagonal al iniciar sesión a través de ssh

No se puede ingresar un carácter de barra diagonal al iniciar sesión a través de ssh

Cuando sshentro a uno de nuestros servidores, no puedo ingresar un carácter de barra diagonal, lo que dificulta hacer casi cualquier cosa (como ls /). ¿Cómo puedo hacer que funcione la barra diagonal?

Alguna información adicional:

  • /etc/issueafirma que está ejecutando "CentOS versión 5.7 (final)"
  • La única manera de saber esto es ejecutandossh me@some-host cat /etc/issue
  • Estoy usando Mac OS X Terminal.app y nunca he tenido problemas con esto, en sistemas Centos 5 o de otra manera.
  • No sé quién ni cómo se construyó y configuró la máquina.
  • echo $TERMinformesxterm-256color
  • No sé si esto tiene sentido para alguien (no tiene sentido para mí), pero busqué diffel /etc/inputrcservidor que funcionaba mal con uno que funciona y obtuve lo siguiente:

    $ diff /tmp/{good,bad}_inputrc
    1c1
    < # do not bell on tab-completion
    ---
    > /# do not bell on tab-completion
    37a38,49
    > 
    > # Home Key
    > "\e[7~":beginning-of-line
    > 
    > # End Key
    > "\e[8~":end-of-line
    > 
    > # Delete Key
    > "\e[3~":delete-char
    > 
    > # Insert Key
    > "\e[2~":paste-from-clipboard
    

Respuesta1

Esta línea es tu problema.

/# do not bell on tab-completion

Si agrego esa línea a mi configuración de trabajo, la barra diagonal deja de funcionar.

La única pista que puedo encontrar sobre esto está en la página de manual de readline:

Se ignoran las líneas en blanco. Las líneas que comienzan con # son comentarios. Las líneas que comienzan con $ indican construcciones condicionales. Otras líneas indican combinaciones de teclas y configuraciones variables.

Dado que no es una línea en blanco y no comienza con #o $, debe tratarse como una combinación de teclas.

Respuesta2

Se puede utilizar un programa llamado xmodmap para modificar mapas de teclas. Mira man xmodmapsi ya está instalado.

En pocas palabras, utilícelo xevpara ver detalles sobre eventos X. Enciéndelo y presiona la tecla /. En mi configuración este es el resultado que obtengo:

KeyRelease event, serial 34, synthetic NO, window 0x4e00001,
root 0x15a, subw 0x0, time 107752919, (784,828), root:(789,850),
state 0x10, keycode 61 (keysym 0x2f, slash), same_screen YES,
XLookupString gives 1 bytes: (2f) "/"
XFilterEvent returns: False

Luego, en la máquina remota, use xmodmap -e 'keycode [KEYCODE] = [KEYSYM]para crear la asignación, donde [KEYCODE] y [KEYSYM] son ​​los valores recuperados de xev. Intente configurar primero el valor predeterminado 61,0x2f para ver si solo es necesario restablecerlo. (es decir, xmodmap -e 'keycode 61 = 0x2f')

Si eso no es posible, intente asignar una clave diferente. Por ejemplo, probé el código clave 105 (control derecho) en 0x2f. Eso funcionó localmente y en una sesión ssh para mí.

Editar:

Es posible que también desee establecer el signo de interrogación. Extienda el comando anterior a xmodmap -e 'keycode 61 = 0x2f 0x3f'. Puedes ver un completolista de símbolos clave aquí.

información relacionada