recherche

Maison  >  Questions et réponses  >  le corps du texte

Erreur Git lors de la connexion au référentiel distant : "Échec de la vérification de la clé d'hôte"

<p>J'essaie de me connecter à un référentiel Git distant qui réside sur mon serveur Web et de le cloner sur mon ordinateur. </p> <p>Ma commande utilise le format suivant : </p> <pre class="brush:php;toolbar:false;">git clone ssh://username@domain.example/repository.git</pre> <p>Cela fonctionne bien pour la plupart des membres de mon équipe. Normalement, après avoir exécuté cette commande, Git demandera le mot de passe de l'utilisateur, puis exécutera le clone. Cependant, lors de l'exécution sur l'une de mes machines, j'obtiens l'erreur suivante : </p> <blockquote> <p>La vérification de la clé d'hôte a échoué. </p> <p>FATAL : Impossible de lire à distance dépôt. </p> </blockquote> <p>Nous n'utilisons pas de clé SSH pour nous connecter à ce référentiel, donc je ne sais pas pourquoi Git recherche la clé sur cette machine particulière. </p>
P粉668113768P粉668113768456 Il y a quelques jours668

répondre à tous(2)je répondrai

  • P粉926174288

    P粉9261742882023-08-28 11:25:55

    Comme je l'ai fait précédemment lors du clonage d'un référentiel git, l'erreur suivante s'est produite : échec de la vérification de la clé hôte. fatal : L'extrémité distante a raccroché de manière inattendue , ajoutant GitHub à la liste des hôtes connus :

    ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

    répondre
    0
  • P粉312631645

    P粉3126316452023-08-28 11:08:39

    Vous vous connectez via le protocole SSH, comme l'indique le préfixe ssh:// sur l'URL du clone. Avec SSH, chaque hôte possède une clé. Le client se souvient de la clé d'hôte associée à une adresse spécifique et refuse la connexion si la clé d'hôte change. Cela évite les attaques de l’homme du milieu.

    domain.example 的主机密钥已更改。 如果您觉得这不可疑,请通过编辑 ${HOME}/.ssh/known_hosts 删除 行,从本地缓存中删除旧密钥domain.example Ou laissez un utilitaire SSH le faire pour vous

    ssh-keygen -R domain.example

    À partir de là, vous pouvez enregistrer vous-même la clé mise à jour

    ssh-keyscan -t rsa domain.example >> ~/.ssh/known_hosts

    Ou, de manière équivalente, laissez ssh 在您下次使用 git fetchgit pullgit 连接时为您完成此操作推送(甚至是普通的ssh domain.example), répondez « Oui » lorsque vous y êtes invité

    The authenticity of host 'domain.example (a.b.c.d)' can't be established.
    RSA key fingerprint is XX:XX:...:XX.
    Are you sure you want to continue connecting (yes/no)?

    La raison de cette invite est que la clé dans domain.example 删除后不再位于您的 known_hosts 中,并且可能不在系统的 /etc/ssh/ssh_known_hosts 中,因此ssh无法知道连接另一端的主机是否真的是domain.example。 (如果 /etc est erronée, alors une personne disposant de droits d'administrateur devra mettre à jour le fichier à l'échelle du système. )

    Je vous recommande fortement d'envisager également de permettre aux utilisateurs de s'authentifier à l'aide de clés. De cette façon, ssh-agent le matériel clé peut être stocké pour plus de commodité (plutôt que tout le monde doive saisir un mot de passe à chaque fois qu'il se connecte au serveur), et le mot de passe n'est pas transmis sur le réseau.

    répondre
    0
  • Annulerrépondre