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

0
<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>
Your Answer
提出する

2 件の回答

0

クローン 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

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

2023-08-28 11:08:39

提出する

Hot Tools

vc9-vc14 (32+64 ビット) ランタイム ライブラリ コレクション (以下のリンク)

vc9-vc14 (32+64 ビット) ランタイム ライブラリ コレクション (以下のリンク)

phpStudy のインストールに必要なランタイム ライブラリのコレクションをダウンロードします。

VC9 32ビット

VC9 32ビット

VC9 32 ビット phpstudy 統合インストール環境ランタイム ライブラリ

PHP プログラマー ツールボックスのフルバージョン

PHP プログラマー ツールボックスのフルバージョン

プログラマ ツールボックス v1.0 PHP 統合環境

VC11 32ビット

VC11 32ビット

VC11 32ビットphpstudy統合インストール環境ランタイムライブラリ

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい