212 votes

Git dit "Warning : Ajouté de façon permanente à la liste des hôtes connus".

À chaque fois que j'utilise git pour interagir avec une machine distante, par exemple lors d'un pulling ou d'un pushing, le message suivant s'affiche :

Avertissement : Ajout définitif de '...' (RSA) à la liste des hôtes connus.

Comment puis-je empêcher l'affichage de ce message gênant ? Ce n'est qu'une gêne, tout fonctionne correctement.

1 votes

Tu veux vraiment dire chaque temps ? Est-ce qu'il vous donne une invite de la forme The authenticity of host '...' can't be established. RSA key fingerprint is .... Are you sure you want to continue connecting (yes/no)? ou l'avez-vous supprimé ? Si c'est le cas, est-ce que c'est la même empreinte digitale à chaque fois ? Si ce n'est pas le cas, c'est vraiment effrayant . L'option la moins effrayante serait que, d'une manière ou d'une autre, il n'arrive pas à écrire dans le fichier hosts et qu'il réessaie à chaque fois. Jetez un coup d'oeil à ~/.ssh/known_hosts ?

1 votes

Oui. <i>Chaque</i> fois. Cependant, je ne vois pas le message "Are you sure..." - peut-être l'ai-je supprimé.

0 votes

L'hôte est-il répertorié dans ~/.ssh/known_hosts ? (Est-il répertorié 5000 fois ?) Est-ce que ~/.ssh/config exister/contenir quoi que ce soit (notamment une valeur de StrictHostKeyChecking ) ?

263voto

Jeremiah Gowdy Points 1603

Solution : créer un ~/.ssh/config et insérer la ligne :

UserKnownHostsFile ~/.ssh/known_hosts

Vous verrez alors le message la prochaine fois que vous accéderez à Github, mais après cela, vous ne le verrez plus, car l'hôte est ajouté à la liste des hôtes. known_hosts fichier. Cela corrige le problème, au lieu de simplement masquer le message du journal.

Ce problème me tracassait depuis un certain temps. Le problème survient parce que le client OpenSSH compilé pour Windows ne vérifie pas le fichier known_hosts dans le répertoire ~/.ssh/known_hosts

ssh -vvvvvvvvvvvvvvvvvvvvvvvvv git@github.com

debug3: check_host_in_hostfile: filename /dev/null
debug3: check_host_in_hostfile: filename /etc/ssh/ssh_known_hosts
debug3: check_host_in_hostfile: filename /dev/null
debug3: check_host_in_hostfile: filename /etc/ssh/ssh_known_hosts
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.

10 votes

Oui, je ne considère pas la suppression des avertissements ou des erreurs comme une bonne solution à un problème ;)

1 votes

Récemment, j'ai rencontré le même problème sur ma machine ubuntu. Il a commencé à se comporter de cette façon après que j'ai utilisé un logiciel différent (de mon logiciel par défaut). ~/.ssh/id_rsa ) pour se connecter à un serveur. Comme l'a mentionné @JeremiahGowdy, j'ai debug3: load_hostkeys: loading entries for host "172.16.3.101" from file "/dev/null" . Pourquoi SSH commence à utiliser /dev/null comme known_hosts après avoir changé de clé ?

6 votes

Fonctionne très bien ! Enfin, l'avertissement stupide a cessé. En fait, sous Windows, le ~ en ~/.ssh/config est le dossier personnel de l'utilisateur. Pour l'ouvrir facilement, appuyez sur Win-R , type cmd Entrez . L'invite de commande devrait déjà être ouverte dans votre dossier personnel. Tapez cd .ssh Entrez y luego start . Entrez pour ouvrir le dossier dans l'Explorateur Windows. Vous pouvez ensuite créer le config dans Notepad (pas de .txt lors de la sauvegarde). (Les utilisateurs Pro peuvent envoyer directement l'écho vers un nouveau fichier dans l'invite de commande elle-même. ;) ). Exécuter une commande git impliquant à distance deux fois (comme git fetch ), et vous avez terminé.

94voto

Kyle Kloepper Points 540

Ajoutez la ligne suivante à votre fichier de configuration ssh ($HOME/.ssh/config) :

LogLevel=quiet

Si vous exécutez ssh à partir de la ligne de commande, ajoutez l'option suivante à la chaîne de commande :

-o LogLevel=quiet

Par exemple, ce qui suit imprime la version de gcc installée sur machine.example.org (et aucun avertissement) :

ssh -o UserKnownHostsFile=/dev/null \
    -o StrictHostKeyChecking=no \
    -o LogLevel=quiet \
    -i identity_file \
    machine.example.org \
    gcc -dumpversion

1 votes

L'ajout de "LogLevel=quiet" au fichier "config" a fonctionné. Merci.

3 votes

Pour maintenir la sécurité, il serait bon de placer le "LogLevel=quiet" dans une section "Host".

45 votes

LogLevel=quiet est une mauvaise idée, il veut que toutes les erreurs soient affichées, il veut juste éviter cette erreur odieuse spécifique. Probablement parce qu'il a fait en sorte que ssh utilise /dev/null comme le known_hosts probablement parce qu'il voulait désactiver known_hosts la vérification des empreintes digitales, mais il n'a pas pu, parce que les maîtres de ssh ne lui ont pas permis de le faire.

67voto

user1193229 Points 99

Définir LogLevel a ERROR (pas QUIET ) en ~/.ssh/config pour éviter de voir ces erreurs :

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null
   LogLevel ERROR

2 votes

Cela a fonctionné au mieux dans mon cas - ou vous pouvez spécifier "-oLogLevel=ERROR" sur la ligne de commande.

0 votes

J'utilise ces paramètres uniquement pour les ips locaux et les hôtes qui sont principalement des vms où la clé d'hôte change relativement souvent : Host 192.* 10.* *.mylocal.domain .

0 votes

Super intelligent =)) celui-ci fonctionne parfaitement et simplement : LogLevel ERROR

7voto

Jason Carreiro Points 37

Ce message provient de SSH, qui vous avertit que vous vous connectez à un hôte auquel vous ne vous êtes jamais connecté auparavant. Je ne recommanderais pas de le désactiver, car cela signifierait que vous pourriez manquer un avertissement concernant le changement de clé d'un hôte, ce qui peut indiquer une attaque MITM sur votre session SSH.

2 votes

Mais je m'y connecte 10 à 15 fois par jour, et je reçois toujours cet avertissement.

0 votes

@JackB. Regardez ~/.ssh/known_hosts et voyez si votre hôte y figure.

0 votes

La clé change-t-elle pour une raison quelconque ? Vérifiez l'empreinte digitale dans le fichier par rapport à l'empreinte digitale générée par ssh. De plus, le mode de votre répertoire .ssh est-il réglé sur 0700 ?

5voto

Stefan Schmidt Points 1181

Pour supprimer les messages d'avertissement pour ssh vous pouvez ajouter les lignes suivantes à ~/.ssh/config :

Host *
LogLevel error

Cela désactivera les avertissements mais pas les messages d'erreur. Comme les autres paramètres dans ~/.ssh/config vous pouvez configurer le LogLevel sur une base par hôte si vous souhaitez un contrôle plus fin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X