リモートリポジトリを追加できているか?
GitHubで空のリポジトリを作成すると丁寧にコマンドが書いてある。
新規にリポジトリを作る場合
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:[GitHubアカウント]/[リポジトリ名].git
git push -u origin main
既存のリポジトリを登録する場合
git remote add origin git@github.com:[GitHubアカウント]/[リポジトリ名].git
git branch -M main
git push -u origin main
SSHキーは正しく登録できているか?
これも丁寧に公式に書いてある。SSHキーを生成して公開鍵をGitHubに登録する必要がある。
SSH-Keyの場所
通常は~/.ssh以下にSSH-Keyがある。.pub付きが公開鍵で、何もついていない方が秘密鍵。
$ ls -la
-rw-r--r-- 1 devuser devuser 83 Jul 9 23:16 config
-rw------- 1 devuser devuser 2602 Jul 9 22:28 id_rsa
-rw-r--r-- 1 devuser devuser 567 Jul 9 22:28 id_rsa.pub
SSH-KeyのGitHub登録
公開鍵はGitHubにアップロードする必要がある。アップロードと言っても前手順で確認した公開鍵をless等で開いて、その中身の文字列を以下のサイトのNewから貼り付けるだけでOK。
SSH configの確認
何らかの理由で~/.ssh/configが壊れるとgitコマンド実行時にエラーになる。例えば以下のようなエラーが出る。
$ git push --set-upstream origin main
no such identity: /home/myuser/.ssh/id-rsa: No such file or directory
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
よく見れば書いてあるが、秘密鍵が存在しない or リポジトリが存在しない旨のエラーになっている。
GitHubに作ったリポジトリ名が正しいかの確認の他、~/,ssh/config に書かれている秘密鍵のファイル名や置き場所が正しいかも確認すること。
~/.ssh/config
Host github.com
HostName github.com
IdentityFile ~/.ssh/id-rsa #本当に正しい秘密鍵の場所を指しているか確認すること!
User git
例えば、上のように秘密鍵のファイル名が違う(本当はid-rsaではなくid_rsaが正しい)という罠があることも・・・。(私はこれで1時間時間を溶かしたことを自戒を込めてここに記す。)
以上。
他にも何かあったら追記していく。増えてほしくないが。