ホームページ  >  に質問  >  本文

リモート リポジトリへの接続時の Git エラー: 「ホスト キーの検証に失敗しました」

<p>Web サーバー上にあるリモート Git リポジトリに接続し、コンピュータにクローンを作成しようとしています。 </p> <p>私のコマンドは次の形式を使用します: </p> <pre class="brush:php;toolbar:false;">git clone ssh://username@domain.example/repository.git</pre> <p>これはほとんどのチームメンバーにとってうまく機能します。通常、このコマンドを実行すると、Git はユーザー パスワードの入力を求め、クローンを実行します。ただし、マシンの 1 つで実行すると、次のエラーが発生します: </p> <ブロック引用> <p>ホストキーの検証に失敗しました。 </p> <p>致命的: リモートから読み取ることができません リポジトリ。 </p> </blockquote> <p>このリポジトリへの接続に SSH キーを使用していないため、Git がこの特定のマシンでキーをチェックする理由がわかりません。 </p>
P粉668113768P粉668113768388日前600

全員に返信(2)返信します

  • P粉926174288
  • P粉312631645

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

    クローン URL の ssh:// プレフィックスで示されているように、SSH プロトコル経由で接続しています。 SSH では、各ホストがキーを持ちます。クライアントは特定のアドレスに関連付けられたホスト キーを記憶しており、ホスト キーが変更されると接続を拒否します。これにより、中間者攻撃を防止します。

    domain.example のホスト キーが変更されました。 これが疑わしいものではないと思われる場合は、${HOME}/.ssh/known_hosts を編集して を削除し、古いキーの domain.example## をローカル キャッシュから削除してください。行番号 または、SSH ユーティリティに任せます リーリー ここから、更新されたキーを自分で記録できます

    リーリー

    または、同様に、次回

    git fetch

    git pull、または git Push ## を使用して接続するときに、ssh にこれを実行させます。 # (またはプレーン ssh ドメイン.example)、プロンプトが表示されたら「はい」と答えます リーリー このプロンプトが表示される理由は、domain.example

    が削除後に

    known_hosts に存在せず、システムの /etc/ssh/ssh_known_hosts にも存在しない可能性があるためです。 したがって、ssh には、接続の相手側のホストが実際に domain.example であるかどうかを知る方法がありません。 (/etc のキーが間違っている場合は、管理者権限を持つ誰かがシステム全体のファイルを更新する必要があります。) ユーザーがキーを使用して認証できるようにすることを検討することを強くお勧めします。このようにして、ssh-agent

    は (誰もがサーバーに接続するたびにパスワードを入力する必要がなく) 利便性のためにキーマテリアルを保存でき、パスワードはネットワーク経由で送信されません。

    返事
    0
  • キャンセル返事