GitHub接続エラーとその解決方法

a white dice with a black github logo on it

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から該当のエントリを削除し、再度接続することで新たなフィンガープリントを取得することです。