#前提条件
・AWS Cloud9(IDE)を使用
・GitHubをコードのバージョン管理として使用
#エラー内容
$ git push origin master
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
「公開鍵がないため、許可が却下されました。リモートリポジトリから読み込めません。正しいアクセス権限があるか、レポジトリが存在しているか確認して下さい。」という内容。
#原因
GitHubに公開鍵の登録がないため、アクセス権限がなく拒否をされてしまった。
#対処法
##SSH鍵の作成
1.下記コマンドを入力。your_email@example.com
はGitHubで登録しているメールアドレスに置き換える。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
2.Enter a file in which to save the key
で何も入力せず、エンターを押す。こうするとデフォルトのファイルの場所に作成される。
> Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
3.パスワードを設定する。確認も含めて2回入力する。
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
##ssh-agentにSSH鍵を追加
1.バックグラウンドでssh-agentを起動させる。
$ eval "$(ssh-agent -s)"
> Agent pid 59566
2.ssh-agentにSSH鍵を追加させる。
$ ssh-add ~/.ssh/id_rsa
##SSH鍵をGitHubアカウントに追加
1.公開鍵の内容を下記のコマンドで表示。表示されたものをコピーする。この時スペースや改行などが入ると認識できないため、入らないように注意する。
cat ~/.ssh/id_rsa.pub
3.SSH and GPG keys>SSH keys> New SSH keyを選択。
4.Titleに名前をつけて(なんでも良い)、Keyに先ほどコピーした公開鍵を貼り付ける。万が一無駄なスペースなどが入ってしまったら、この時点で削除する。そしてAdd SSH keyボタンを選択する。
エラーが出ずに鍵が作成されたら成功。
##SSHの疎通確認
1.下記のコマンドを実行し、最後の方に...successfully authenticated...
が表示されればSSHの疎通がされたことが確認できる。
$ ssh -T git@github.com
こうして鍵を登録したアカウントの権限があるリポジトリが、操作できるようになる。
参考
https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
https://docs.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account
https://utano.jp/entry/2017/10/amazon-linux-github-ssh-key/