2
1

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 1 year has passed since last update.

ec2にgitをインストールしてgithubからgit pullできるようになるまで

Posted at

経緯

ec2にアプリをデプロイするためにgitをインストールし、githubからリポジトリをクローンしようと思ったのですが、githubのssh設定でつまづいたため記事として残しておきます。

結論

ssh接続のための鍵はroot(sudo)で作成する

やったこと

1. ec2にssh接続

$ ssh -i {ec2に接続するための鍵} ec2-user@{ec2のpublicIP} 

2. gitインストール

$ sudo yum install git

3. githubにssh接続するための鍵を作成する

$ ssh-keygen -t ed25519 -C {自分のメールアドレス}

3回ほど質問されますが、全てEnterを押せばOKです
これで~/.ssh/id_ed25519(秘密鍵)と~/.ssh/id_ed25519.pub(公開鍵)が生成されます

4.githubに公開鍵を登録する

https://github.com/settings/ssh/new
こちらから公開鍵の登録ができます。
Titleには好きな文字列を、Keyには公開鍵(今回だとid_ed25519.pub)の内容をコピーして貼り付けます。
image.png

5.SSH接続の確認

$ ssh -T git@github.com

このコマンドを叩いて下が返ってくれば成功です
Hi (account名)! You've successfully authenticated, but GitHub does not provide shell access.

6.リモートリポジトリをクローン(ここで詰まった)

$ git clone git@github.com:{ユーザ名}/{リポジトリ名}.git

SSHの接続設定も完了しているので本来であればリポジトリのクローンができるはずです。
しかし、実際に返ってきたのは以下でした...
Permission denied (publickey).
fatal: Could not read from remote repository.

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

解決策

gitのドキュメントを読んでみる

https://docs.github.com/en/authentication/troubleshooting-ssh/error-permission-denied-publickey
上のリンクに次のような記述がありました。

image.png

要はSSH鍵を作成するときにsudoを使ってしまうと、gitコマンドを使うときに毎回sudoをつけないといけなくなるよということでした。
しかしながら、SSH鍵を作成するときにsudoをつけた覚えはありません。
ということで、逆にsudoつけて鍵作ったらどうなるんだろうと試してみたところうまくいきました!

$ sudo ssh-keygen -t ed25519 -C {自分のメールアドレス}

git cloneの時もsudoをつけてあげます

$ sudo git clone git@github.com:{ユーザ名}/{リポジトリ名}.git

まとめ

SSH鍵生成のときにsudoを使うことで無事githubとの接続ができました。
(gitのコマンドを使うときに毎回sudoをつけないといけない制約はありますが...)

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?