Chaque fois que j'utilise git pour interagir avec une télécommande, par exemple en tirant ou en poussant, le message suivant s'affiche:
Avertissement: Ajout permanent '...' (RSA) à la liste des hôtes connus.
Comment puis-je empêcher l'affichage de ce message agaçant? Ce n'est qu'un désagrément: tout fonctionne correctement.
Solution: créez un fichier ~/.ssh/config
et insérez la ligne:
UserKnownHostsFile ~/.ssh/known_hosts
Vous verrez alors le message lors de votre prochain accès à Github, mais vous ne le verrez plus après, car l'hôte est ajouté au fichier known_hosts
. Cela résout le problème plutôt que de simplement masquer le message du journal.
Ce problème me dérangeait depuis un certain temps. Le problème se produit car le client OpenSSH compilé pour Windows ne vérifie pas le fichier known_hosts dans ~/.ssh/known_hosts
.
ssh -vvvvvvvvvvvvvvvvvvvvv [email protected]
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.
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 (sans avertissement):
ssh -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
-o LogLevel=quiet \
-i identity_file \
machine.example.org \
gcc -dumpversion
Définissez LogLevel
sur ERROR
(pas QUIET
) dans le fichier ~/.ssh/config
pour éviter de voir ces erreurs:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
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 l'éteindre, car cela signifierait que vous risquez de manquer un avertissement concernant le changement de clé d'un hôte, ce qui peut indiquer une attaque MITM sur votre session SSH.
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 de ~/.ssh/config
, vous pouvez configurer la LogLevel
sur une base par hôte si vous souhaitez un contrôle plus fin.
Cela signifie principalement que la clé a été modifiée pour cet hôte ~/.ssh/known_hosts
et qu'elle ne sera pas automatiquement mise à jour. Par conséquent, chaque fois que vous recevez ce message d'avertissement.
Cela se produit souvent lors de la connexion aux machines virtuelles recréées, ce qui change la clé avec la même adresse IP.
Solution
Si vous ne possédez qu'une seule entrée, vous pouvez alors supprimer le fichier ~/.ssh/known_hosts
. Après la première connexion, la clé sera présente et aucun message d'avertissement ne suivra.
Si vous avez plusieurs entrées, vous pouvez utiliser la commande ci-dessous pour supprimer
$ ssh-keygen -R <hostname>
Ça fonctionne bien pour moi
Ajouter une clé ssh
ssh-keygen -t rsa -b 4096 -C "[email protected]"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/bitbucket_rsa
fichier de configuration de caisse
crate ~/.ssh/config
ajouter la ligne ci-dessous.
UserKnownHostsFile ~/.ssh/known_hosts
Ajoutez ensuite la clé pub et clonez votre référentiel ... Terminé .....
J'avais rencontré la même erreur sous Linux/Cent OS VM et c'était parce que l'IP changeait après le redémarrage. Afin de contourner ce problème, j'ai défini une adresse IP statique sur le réseau et ajouté cette entrée au fichier/etc/hosts. Pour une adresse IP statique, indiquez une valeur de plage légèrement supérieure. Par exemple, si votre adresse IP actuelle (ipconfig/ifconfig) est 192.168.0.102, celle-ci après le redémarrage peut devenir 192.168.0.103. Définissez donc votre adresse IP statique dans les paramètres IPV4 comme étant 192.168.0.181, ce qui devrait faire l'affaire.
J'ai la même question et j'ai constaté qu'il n'y a pas de fichier .ssh
dans mon ~
. Je crée donc simplement le répertoire .ssh
sous le chemin ~
et le problème est résolu.
J'ai eu le même problème quand j'ai commencé à utiliser une machine Windows. Dans mon cas, c'était parce que ma configuration SSH n'était pas terminée. Github a une documentation très précise sur la configuration de SSH. Une fois que cela a été pris en charge, le problème a été résolu.
https://help.github.com/articles/checking-for-existing-ssh-keys/https://help.github.com/articles/generating-a-new-ssh -key-and-add-it-to-the-ssh-agent/
Dans mon cas, c’est parce que l’administrateur qui a configuré le serveur a défini ces options dans ~/.ssh/config
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Ce qui a bien fonctionné dans la plupart des cas en n'utilisant pas le fichier ~/.ssh/known_hosts
. Mais pour l'entreprise gitlab repo, à chaque fois, elle a donné le message "Avertissement: ajouté de manière permanente ... à la liste des hôtes connus".
Ma solution a été de commenter la ligne UserKnownHostsFile /dev/null
, qui a permis la création de ~/.ssh/known_hosts
. Ensuite, il n'a plus donné d'avertissement par la suite.
Vous pouvez également avoir une ancienne/invalide entrées dans votre known_hosts
.
# find entry in ~/.ssh/known_hosts
ssh-keygen -F <hostname>
# delete entry in ~/.ssh/known_hosts
ssh-keygen -R <hostname>
Si vous utilisez un référentiel depuis GitHub, envisagez plutôt d'utiliser la versionHTTPSde l'URL, pour éviter complètement ce problème:
Si vous clonez votre référentiel à partir de l'application Windows GitHub, voici ce qu'il utilise pour l'URL distante. Peut-être qu'ils savent quelque chose que nous ne savons pas.