1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

gitでpush出来なくてハマってしまった話。

Last updated at Posted at 2020-12-30

プライベートPCでwebアプリ開発を始めようと rails new してfirst commitの内容をgithubに反映させようとしたところ以下のようなエラーが出て1日ハマってしまったので自戒も込めてメモ。

前提としてやっていたこと

  • githubで新しいリポジトリを作成している。
  • gitリモート接続登録している。
  • 公開鍵をgithubのsettingに登録。

発生したエラー

### originのリポジトリにプッシュする
$ git push origin master

#-------------------
Bad owner or permissions on ~/.ssh/config
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
#-------------------

「アクセス権限とリポジトリの存在を確認してくれ」と言われている。

確認した内容

gitリモート接続出来ているか

$git remote -v
origin  git@github.com:githubaccaunt/projectname.git (fetch)
origin  git@github.com:githubaccaunt/projectname.git (push)

この様に出力されてたらOK。
もしされてなかったら

$git remote add origin https://github.com/githubaccaunt/projectname.git

keyが作成されているか。

前提で公開鍵を登録していたが念の為

$ ls ~/.ssh/
id_rsa id_rsa.pub

確かに存在している(これで出てこない人は検索してみてね)。
念の為githubに公開鍵を登録し直してみた。

# 公開鍵のクリップボードへのコピー
pbcopy < ~/.ssh/id_rsa.pub

それをgithubで

  • 右上のアイコン→Settings→SSH and GPG keys→New SSH key

に貼り付け(元々作ったのはdelete)。
image.png

~/.ssh/configの中身確認

$ vim ~/.ssh/config
Host gitHub↲
  HostName github.com↲
  User git↲
  IdentityFile  ~/.ssh/id_rsa↲

サイトによって記述の仕方は若干異なるけど大多数はこれ。

vimは使い慣れていないけど

  • Iでインサートモード
  • esc→:waで保存
  • :qaで終了

とりあえず中身もタイポとかはしてなさそうだった。

sshへの接続確認

$ ssh -T git@github.com

これを実行して

Hi your! You've successfully authenticated, but GitHub does not provide shell access.

接続できている。これでpush出来るかと思ったら

なぜかエラーメッセージは同じものだった

ひと通り関連した検索内容に書かれているものは再確認・再試行したがダメだった。SSH認証まで取れているのになぜだろう。

頼れるは公式Doc

GitHub公式Docを参考にしたら大事な手順が抜けていることが判明。
そもそもSSHへの接続確認までの手順として正しいのは

  1. 既存の SSH キーの確認
  2. 新しい SSH キーを生成する
  3. SSH キーを ssh-agent に追加する
  4. GitHub アカウントへの新しい SSH キーの追加
  5. SSH 接続をテストする

なのだが3.を抜かしていることに気づく。

解決

### ssh-agentが動作しているか確認
$ eval "$(ssh-agent -s)"
Agent pid 32047

### 秘密鍵を追加
$ ssh-add ~/.ssh/id_rsa
...
Identity added: ~/.ssh/id_rsa 

終わりに

なかなか環境構築って数を沢山やるわけじゃないから個人の知見があまりなかったが、SSH周りの復習も兼ねていい経験になった。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?