【初心者向け】GitHubでSSH接続の設定方法 for Ubuntu

[記事内には広告が含まれています]

こんにちは、現役エンジニアの inno_tech です。

GitHubでSSH接続の設定方法をお探しでしょうか?
今回は、Ubuntu20.04LTSを使ってGitHubにSSH接続するまでの手順を説明します。

本記事を読めば、GitHub上のリモートリポジトリを使用した開発ができるようになります。

Githubではhttpsでの接続もできますが、パスワード認証が廃止となり、Personal Access Token(PAT)の発行が必要になります。

一方、SSHの認証はsshキーを登録したデバイスから自動認証で接続できるので、頻繁にGitHubを使用する方はSSH接続がおすすめです。

SSH接続までのステップは3stepです。それでは説明をご覧ください。

本記事は ubuntu20.04LTSの環境で検証しています。

もくじ

step1. SSHキーの作成

まずは ssh-keygen コマンドを使ってsshキーを作成します。
-tオプション暗号化のアルゴリズムを指定しますが、現時点では、 Ed25519方式のアルゴリズムで鍵を生成することが推奨です。(GitHub公式ドキュメントより)

SSHプロトコルを使用するために、OpenSSHというSSH接続用ツールをインストールし、その後 SSHキーを作成していきます。

# OpenSSH serverのインストール 
sudo apt-get install openssh-server

# OpenSSHのバージョンを確認
ssh -V

# ver6.5以上であれば Ed25519方式のアルゴリズムに対応したキーを作成
# -f: ファイル名
# -C: コメント
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "your_email@example.com" 

## 下記が表示されたらパスワードを入力 
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): 

# 下記が表示されたら、もう一度同じパスワードを入力 
Enter same passphrase again: 

# 秘密鍵 id_ed25519, 公開鍵 id_ed25519.pub の2ファイルが生成される
Your identification has been saved in  /home/[username]/.ssh/id_ed25519 
Your public key has been saved in /home/[username]/.ssh/id_ed25519 .pub
The key fingerprint is:
SHA256:・・・
ubuntu | sshキーの作成
ubuntu | sshキーの作成

古いOpenSSHバージョンの場合は、Ed25519方式に対応していないため、RSAという方式で生成します。

# 古いバージョンのOpenSSHの場合、RSA方式のアルゴリズムに対応したキーを作成
ssh-keygen -t rsa -b 4096 -f ./my_ssh_key -C "your_email@example.com"

ここまでで秘密鍵(id_ed25519)公開鍵(id_ed25519.pub)の2つのファイルが生成されました。

秘密鍵 暗号化通信を復号するためのファイルで、他人に渡したりしてはいけません
使用者以外に流出すると、悪意ある第三者に通信が解読される可能性があります。
なお、公開鍵暗号化時のみ使用するファイルで、他人に知られても問題ありません

step2. SSHキー(秘密鍵)をssh-agentに登録

ssh-agent(今回の場合、OpenSSH)に対し、秘密鍵ファイルを登録します。

# 先ほど作成した秘密鍵ファイル を登録
ssh-add ~/.ssh/id_ed25519

# パスワードを聞かれるので、sshキー作成時のパスワードを入力
Enter passphrase for /home/[username]/.ssh/id_ed25519: 

# Identity added と表示されればOK
Identity added: /home/[username]/.ssh/id_ed25519

# 登録された鍵(finger print)を確認するコマンド
ssh-add -l

以上でPC側の設定は完了です。

step3. GitHubにSSHキー(公開鍵)を登録

続いて、GitHub(リモート接続先)にSSHキーの公開鍵を登録します。

GitHubにログイン後、右上のアカウントマークをクリックし「Settings」を開きます。

GitHub | アカウント -> Setting
GitHub | アカウント -> Setting

SSH and GPG keys」のメニューから、「New SSH Key」をクリックします。

GitHub | Setting -> SSH and GPG keys
GitHub | Setting -> SSH and GPG keys

登録する公開鍵の中身を確認するため、一旦ターミナルに戻ります。
catコマンドで 公開鍵(.pub)の内容を表示し、その文字列全文をクリップボードにコピーします。(秘密鍵ではないので注意)

# 先ほど作成した公開鍵ファイル を表示
cat ~/.ssh/id_ed25519.pub

# 表示される長い文字列をコピー(ssh-ed25519~末尾まですべて)
ssh-ed25519 AXXXX・・・・
Ubuntu | 公開鍵の確認
Ubuntu | 公開鍵の確認

GitHubの画面に戻り、下記のように公開鍵を設定してAdd SSH Key を押下します。

  • Name: 登録する鍵の名前です。自由に設定して構いません。
  • Key: 確認した公開鍵の文字列データを貼り付けます。
GitHub | SSH keysの設定
GitHub | SSH keysの設定

正常に登録できれば、公開鍵の一覧に登録したSSHキーが追加されるはずです。

GitHub | 登録されたSSHキーの確認
GitHub | 登録されたSSHキーの確認

以上でGitHub側の設定は完了です。次にテスト接続してみます。

SSH接続テスト

SSH接続の準備ができたら、早速GitHubに接続してみましょう。

SSH接続用URLの確認

リポジトリの画面にCodeボタンがあるのでクリックすると、クローン用URLが表示されます。

SSHタブをクリックし、そのURLをコピーしましょう。

GitHub | SSH接続用URLの確認
GitHub | SSH接続用URLの確認

テスト接続

早速テスト接続してみましょう。正しいペアの秘密鍵・公開鍵が登録できていれば、接続できるはずです。

なお、初回接続時のみ Are you sure you want to continue connecting (yes/no/[fingerprint])?と表示されます。この場合「yes」と入力してください。
2回目以降は、~/.ssh/known_hostsファイルに接続済みホストとして登録されるので上記メッセージが表示されなくなります。

# 試しにclone
git clone [リポジトリurl]

# 初回接続時は、下記のようなメッセージが表示される
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxx.

# 接続してよいかを確認されるため、yes を押下する 
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,xx.xx.xx.xx' (ECDSA) to the list of known hosts.
...

# ~/.ssh/known_hosts に接続経験のあるホストとして公開鍵情報が登録される
# 下記コマンドで確認可能
cat ~/.ssh/known_hosts 

すでにClone済みのリポジトリがある場合

なお、https接続でClone済みリポジトリがある場合、リモートリポジトリのURLをssh接続用に変更する必要があります
こちらの記事にやり方をまとめたのでご覧ください。

あわせて読みたい
【1分で分かる】gitのリモートリポジトリのURLを変更(httpsからsshへ) 今回は、すでにclone済みのgitリポジトリに対し、リモートリポジトリURLを変更する方法をまとめます。 例えば、https接続からssh接続に変更したいといった場合に使う機...

最後に

今回はSSH接続の設定方法を説明しました。
SSH接続ではペアとなる鍵を用意し、PC(秘密鍵)とリモート接続先(公開鍵)の両方でそれぞれ鍵を持つことで、暗号化された通信を実現します。

このあたりの暗号化通信に関する知識は国家資格である「情報処理安全確保支援士」の中で学習できますよ。

話は変わりますが、プログラミングを習得したい, 仲間が欲しい人は、プログラミングスクールに通うのがおすすめです
自己学習でかかるコストを考えると十分元が取れると思います。

少しでも興味があれば、まずは無料のオリエンテーションを受講し、自分に合うか試してみるのがよいでしょう。

まずは一歩行動して、将来の自分に楽をさせてあげましょう。

参考になったでしょうか。
ほかにも役立つ情報が他のページにもあるかもしれません。
ご覧いただいても、ご覧いただかなくてもどちらでもどうぞ!

この記事がイイねと思ったら、Twitterフォロー か  にほんブログ村のどちらかしてくれたら嬉しいよ!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント / ご要望

コメントする

goto
もくじ
閉じる