0
0

GitHubとのSSH接続でハマったのでメモ

Last updated at Posted at 2024-05-11

GitHub に SSH 接続してリモートリポジトリからサーバーにプロジェクトをクローンしようとしたら SSH 接続のところでハマったのでメモを残しておきます。

環境

Linux(CentOS9)

うまく行った手順

/home/[ユーザー]/.ssh へ移動します。(.sshがなければディレクトリを作成)
.sshディレクトリの所有者がrootになっていると面倒なので、その場合は自分のユーザーで作り直します。

下記コマンドで、秘密鍵と公開鍵を生成する。
rsa_GitHubは、任意のファイル名で大丈夫です。
パスワードは空白でもOK。

ssh-keygen -t rsa -b 4096 -f rsa_GitHub

こう表示されたらOK

2024-05-11-17-13-50.png

スクリーンショット 2024-05-11 205640.png

.pub が付いているほうが公開鍵で付いていないほうが秘密鍵です。
公開鍵の方は、鍵というより南京錠のような鍵穴をイメージするほうがわかりやすいです。

公開鍵(.pubの方)の中身をコピーしてGitHubのSetting > Deploy keysの設定で貼り付けます。

スクリーンショット 2024-05-11 204008.png

スクリーンショット 2024-05-11 204233.png

スクリーンショット 2024-05-11 205916.png

下のように表示されればOK。

スクリーンショット 2024-05-11 204543.png

下記コマンドで.sshディレクトリにconfigファイルを作成し、編集します。

vi config

スクリーンショット 2024-05-12 113533.png

下記コマンドで SSH 接続のテスト

ssh -T git@github.com

「You've successfully authenticated, ~」と出たらテスト成功。

下記コマンドで GitHub からクローンできます。

git clone [githubのSSHのURL]

URL は GitHub から下の箇所から取得します。

スクリーンショット_2024-05-11_201638.png

つまづいた点

.sshディレクトリがrootユーザーになっていたので、.sshの中で鍵を生成しようとすると自分のユーザーで作れなくて煩雑になっていました。

プロジェクトが複数ある場合

プロジェクトがフロントエンドとバックエンドで分かれている場合などは、鍵をそれぞれで作ってconfigで以下のようにすると、それぞれでSSH認証を分けられます

Host github-front
    HostName github.com
    User git
    IdentityFile /home/[ユーザー名]/.ssh/[フロントエンドの秘密鍵]
Host github-server
    HostName github.com
    User git
    IdentityFile /home/[ユーザー名]/.ssh/[バックエンドの秘密鍵]

GitHubに公開鍵をそれぞれ登録して、以下のようにgithub.comだった箇所をgithub-frontのように変更すると成功します。

ssh -T git@github-front

スクリーンショット 2024-05-12 115214.png

終わり

久しぶりのインフラ構築で手間がかかりましたが、これでGitでデプロイができるようになって作業が楽になりますね。

0
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
0
0