vagrantを使っていてGitHubにリポジトリを上げられない時の対処法
Gitは奥が深く一朝一夕では理解出来ませんね
現在vagrantを使って制作物をGitで管理しているのですが、Git add .やGit commit などはうまくいっても GitHubのリポジトリにpush出来ずに苦労したので解決法などを記載致します。
Git pushしたときのエラーログごとに解決策を記載していきます。
1.ssh: Could not resolve hostname github.com: Temporary failure in name resolution
ネットワークの問題の可能性があるので再起動すると解決するかと思います。
2.error: The requested URL returned error: 403 Forbidden while accessing https:ka/ecitem_review.git/info/refs
こちらが出たときやリポジトリの名前が違うなどのエラーが出たときは言われた通りにリポジトリの名前を変えてあげましょう、ただ私自身そうだったのですがいろんなサイトを見るとそれぞれ書いてあることが異なりどれを参考にしていいのか分からなくなります。 実際私が以前自分で書いた記事を参考にしてもうまくいきませんでした。
解決法は一つではなく自分のエラーログをしっかり見て何が必要かただ盲目的にサイトを回遊するのではなくはっきりと目的を定めて原因を探ることが大切です。
さてといったところで自分の解決法を記載します。
- まず自分で作ったGitHubのアカウントに入りCodeを見ます
そこにhttpsのURLかSSHを確認できるところがあると思うのでSSHの方をコピーします。
$ git remote set-url origin ここに先ほどのSSHを貼り付けます
これでもう一度git pushをしてみてください。
3.Bad owner or permissions on /home/vagrant/.ssh/config
公開鍵を設定し直してみてください。このサイトに詳しく書いてあります。
4.Permission denied (publickey)
cd ~/.ssh
.sshに移動するのでフォルダ内にある鍵やconfigの権限を変えてみてください。
パーミッションの変更の仕方は「chmod 数字三つ ファイル名」です。
権限は777として書き込み、読み込み、実行がすべてのユーザーで可能にして試してください、ただ本来はよくないので、pushが成功したら不必要なものは変えましょう。
パーミッションにはルールがあって全て権限を777にしても一時的には通ったとしてもその後うまくいきません 私が試して成功したものをエラーログごとに記載していきます。
Bad owner or permissions on /home/vagrant/.ssh/config
というエラーが出たら見てわかる通りconfigについて言われているので
chmod 020 config
とします。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for '/home/vagrant/.ssh/id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: /home/vagrant/.ssh/id_rsa Permission denied (publickey).
このようなエラーが出た場合は、秘密鍵のパーミッションがオープンすぎると言われているので
chmod 600 id_rsa
こうするのが正しいらしいです。
パーミッションにはそれぞれルールがあるりそれが影響していたようです。 パーミッションに関してはこちらの記事を参考にさせて頂きました。
SSHで接続しようとしたら秘密鍵のパーミッションでエラーが出た - yachibit.log
ちなみに他サイトやドットインストールを利用している場合ほぼほぼ「id_rsa.pub」が公開鍵です.pubはpublicのpubだと思われます。
これでうまくいかないときはGitHubに送るフォルダやファイルの権限も変えてください。
これらのエラーに対してのアプローチは以上になります。
この記事を書くにあたってかなりの時間を使ってエラーと向き合っていたのですが、正直言ってエラーの原因等が分かりにくくて苦労しました。ただ
CUIでのエラーは良く分からないからといって投げてしまってはなにも解決しません。
何が原因かを考えて試行錯誤していくことでいつか必ず答えが見つかるのでこれを読んでいて頭を抱えてるあなたも諦めずにやりきって下さい。
そして出来ればその過程を記録して解決法をまとめていつか同じように困っている人に教えてあげてください。 自分が助けられたら次は他の誰かを助けてあげるといいかと思います。