web-dev-qa-db-fra.com

La complétion par tabulation ne fonctionne pas avec SSH

J'ai configuré un référentiel Git sur ma machine Ubuntu en tant que serveur, situé sur un réseau domestique. Puis je SSH à ce référentiel sur le même ordinateur ou à partir d'un autre ordinateur à la maison. La connexion est correcte. Cependant, lorsque je tape un nom de fichier ou de répertoire partiel sur le terminal, puis appuyez sur tab, le curseur se déplace vers la droite du terminal, sans afficher le nom complet du fichier ou du répertoire comme il le fait normalement.

Après avoir quitté le serveur SSH, le tab la clé fonctionne normalement.

Edit:

Également  et  les clés ne fonctionnent pas. Lorsque j'appuie sur l'une de ces actions, je reçois ces informations au terminal:

$ ^[[A^[[D^[[C^[[A

Quelle pourrait être la raison?

Ajouter:

$ env

MAIL=/var/mail/git
USER=git
SSH_CLIENT=10.0.0.250 42342 2222
J2SDKDIR=/usr/lib/jvm/Java-8-Oracle
J2REDIR=/usr/lib/jvm/Java-8-Oracle/jre
HOME=/home/git
SSH_TTY=/dev/pts/5
LOGNAME=git
TERM=xterm-256color
XDG_SESSION_ID=93
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/Java-8-Oracle/bin:/usr/lib/jvm/Java-8-Oracle/db/bin:/usr/lib/jvm/Java-8-Oracle/jre/bin
DERBY_HOME=/usr/lib/jvm/Java-8-Oracle/db
XDG_RUNTIME_DIR=/run/user/1001
LANG=en_US.UTF-8
Shell=/bin/sh
PWD=/home/git
Java_HOME=/usr/lib/jvm/Java-8-Oracle
SSH_CONNECTION=10.0.0.250 42342 10.0.0.250 2222
3
martin

Votre Shell actuel est le problème. Vous utilisez actuellement sh en tant que shell par défaut, comme indiqué dans le résultat de votre commande env:

Shell=/bin/sh

Pour résoudre votre problème, vous devez passer à un autre Shell prenant en charge ces entrées de clé (tel que bash, que je vais utiliser à titre d'exemple). Pour ce faire, vous devez utiliser l'utilitaire chsh (Change Shell).

Exemple:

$ which bash
  /bin/bash
$ chsh -c /bin/bash 

Ceci mettra à jour l'environnement Shell par défaut pour votre utilisateur (voir plus ici pour une utilisation complète). Vous devrez vous déconnecter/vous connecter ou démarrer une nouvelle session pour charger le nouveau shell.

Vous pouvez également utiliser un autre shell en localisant son chemin et en l'exécutant à partir de votre shell actuel. À titre d'exemple, voici le passage de sh à bash:

$ which bash
  /bin/bash
$ /bin/bash

chris@loki:~$ 

J'espère que cela t'aides!

7
The Pizza Overlord