質問: ### 現状 GitHubにSSHで接続しようとしています。 公開鍵を作成、GitHub側へ登録。 そして、リポジトリにpushすることに成功しました。 しかしその後、$git pushするごとに、警告文が出てきました。 一応対処はしましたが、どうしてそうなったのかイマイチよく分かっていない状況です。 ### 発生している問題、やってみたこと $git pushするごとに、下記のような警告が発生しました。 (push自体は上手くいきました) ``` $ git push Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.xxx' to the list of known hosts. ``` まず、私はこの警告を以下のように解釈しました。 ** known hostsというのは接続したことのあるホストの情報(公開鍵など)を保持するファイルである。今回、GitHubに接続するたびにIPアドレスが変わっている(?)関係で、ホストの情報をknown hostsにいちいち追記している状態であるため、警告が出ている。 ** これに対しての対処法は、下記のようなやり方がありました。 https://qiita.com/tdrk/items/a0554763c29f60e347b5 ``` $ ssh-keygen -R xxx.xxx.xxx.xxx ``` 調べると、これはknown_hostsファイルから、指定されたホスト名 に属する鍵をすべて取り除くことができるコマンドだとわかりました。 ただ取り除いたところで、これが根本的な解決になるのか? また接続したらおんなじことじゃないか?と素朴に思いました。 そして実際、(xxx.xxx.xxx.xxxに警告で出たアドレスを入れて) このコマンドを叩いても、警告は消えませんでした。 また、ダメ元で ``` $ ssh-keygen -R github.com ``` というコマンドもやってみました。(考えなしで適当にやりました...) すると、 ``` $git push The authenticity of host 'github.com (xxx.xxx.xxx.xxx)' can't be established. RSA key fingerprint is xxxxxxxxxxxx RSA key fingerprint is xxxxxxxxxxxx Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'github.com' (RSA) to the list of known hosts. ``` と、出力され、次回から$git pushしても警告が発生しなくなりました。 という訳で一応解決はしたのですが、なぜ上手く行ったのかよく分からない状態です。 そこで、何かご教示いただけないでしょうか。 根本的な誤り等ありましたらご指摘お願いいたします。
回答: なんらかの事情であやまった接続先サーバの情報が`~/.ssh/known_hosts`に登録されていたのだと思われます。 `ssh-keygen -R hostname`でその誤った登録を解除したことで、次に`git push`したときに正しい情報を登録できるようになったと考えられます。 極めて正しい解決策だったと言えるでしょう。 SSH接続エラー回避方法:.ssh/known_hostsから特定のホストを削除する/削除しないで対処する3つの方法 - Qiita