GitHubへの接続エラーについて書きたいと思います。これは私自身が遭遇した問題で、その解決策を共有したいと思います。
問題の概要
ある日、GitHubにSSH経由で接続しようとしたところ、以下のようなエラーメッセージが表示されました。
The fingerprint for the RSA key sent by the remote host is SHA25
このメッセージは、GitHubのサーバーから送られてきたRSAキーのフィンガープリントがSHA25と一致しないという意味です。SSHは安全な接続を確保するために、接続先のサーバーから送られてくる公開鍵のフィンガープリントを検証します。しかし、何らかの理由でフィンガープリントが一致しない場合、このようなエラーが表示されます。
解決策
この問題の解決策は、ssh-keygen
コマンドを用いて、known_hosts
ファイルからGitHubのエントリを削除することです。以下のコマンドを実行します。
ssh-keygen -R github.com
すると、以下のようなメッセージが表示されます。
# Host github.com found: line 50
/Users/sumito.tsukada/.ssh/known_hosts updated.
Original contents retained as /Users/sumito.tsukada/.ssh/known_hosts.old
このメッセージは、known_hosts
ファイルからGitHubのエントリが見つかり、 削除されたことを示しています。 また、元のknown_hosts
ファイルの内容はknown_hosts.old
として保存されます。 これで問題は解決し、再度GitHubに接続すると新たに公開鍵のフィンガープリントを確認するプロンプトが表示されます。 ここでyes
を選択すると、新しいフィンガープリントがknown_hosts
ファイルに追加され、再度接続する際にはこのフィンガープリントが使用されます。
まとめ
今回はGitHubへのSSH接続時に遭遇したエラーとその解決策について説明しました。 この問題は、SSHのフィンガープリント検証がうまくいかない場合に発生します。 解決策はssh-keygen -R
コマンドを用いてknown_hosts
から該当のエントリを削除し、再度接続することで新たなフィンガープリントを取得することです。