Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

GitHubにssh接続する方法についてまとめています。

GitHubにSSHでアクセスする方法

GitHubとローカルの開発マシンとの接続をsshを使って行う方法について解説しています。

参考)GitHub に SSH で接続する – GitHub Docs

以下、ubuntu 18.04環境を例にして解説しています。

SSHアクセス用の秘密鍵・公開鍵を作成

GitHubへのSSHアクセス用に秘密鍵、公開鍵を作成します。すでに作成済みの場合は、この手順は不要です。

まずは、ユーザディレクトリ以下の.sshが存在するかどうかを確かめます。ディレクトリが存在しなければ、秘密鍵・公開鍵が存在しないことになります。

$ ls -al ~/.ssh
ls: '/home/user1/.ssh' にアクセスできません: そのようなファイルやディレクトリはありません

ssh-keygenコマンドで秘密鍵・公開鍵を作成します。ssh-keygenの-Cの後ろにはユーザのメールアドレスを指定します。パスフレーズとは秘密鍵にアクセスするためのパスワードです。

$ ssh-keygen -t ed25519 -C "user1@mydomain.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user1/.ssh/id_ed25519)::←そのままEnterキーを押す
Created directory '/home/user1/.ssh'.
Enter passphrase (empty for no passphrase):←パスフレーズを入力
Enter same passphrase again:←再度パスフレーズを入力
Your identification has been saved in /home/user1/.ssh/id_ed25519.
Your public key has been saved in /home/user1/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:NwCltppniWoIohkypx+nzi+yruDDt/zxm0wz2quoPz8 user1@mydomain.com
The key's randomart image is:
+--[ED25519 256]--+
|      ...        |
|       o         |
|      o .        |
|     . . .       |
|      . S o      |
|* .  + . . .     |
|BB. =.++         |
|O++B.EB +        |
|=X@B*=oBo        |
+----[SHA256]-----+

lsコマンドで確認すると、鍵ファイルが生成されています。

$ ls -l ~/.ssh
合計 12
-rw------- 1 user1 usergroup 464  6月 21 09:16 id_ed25519
-rw-r--r-- 1 user1 usergroup 100  6月 21 09:16 id_ed25519.pub
-rw-r--r-- 1 user1 usergroup 884  6月 21 09:31 known_hosts

ssh-agentに秘密鍵を登録

ssh-agentとは、SSH接続時にパスフレーズを自動入力してくれるサービスです。

$ eval "$(ssh-agent -s)"
Agent pid 3529
$ ps -ef | grep ssh-agent | grep user1
user1     3529     1  0 09:18 ?        00:00:00 ssh-agent -s
user1     3531  2867  0 09:18 pts/2    00:00:00 grep ssh-agent

都度手動起動がめんどうな場合は、.bash_profileなどに記述しておくことも可能です。

関連)ssh-agentを自動起動する – Qiita

ssh-addで、ssh-agentに秘密鍵を登録します。秘密鍵は、先ほど.ssh下に作成したファイルのうち、「ファイル名に.pubが付いていない方」です。

$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/user1/.ssh/id_ed25519:←パスフレーズを入力
Identity added: /home/user1/.ssh/id_ed25519 (user1@mydomain.com)

GitHubに公開鍵を登録

GitHubにサインインし、公開鍵を登録します。

関連)GitHub公式サイト

サインイン後、画面右上のアイコンをクリックし、Settingsを選択します。

SSH and GPG keysをクリックし、SSH keysの右にある「New SSH key」をクリックします。

Titleに鍵の名前をつけ、Keyに公開鍵の内容を貼り付けます。

 

公開鍵の内容は、以下のように確認可能です。

$ ls ~/.ssh
id_ed25519  id_ed25519.pub
user1@ubuntu:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBGa+UZwB66Sg5Dhcy5htR71S7weLP4fApZagnmd9AZ0 user1@mydomain.com

以下のように、公開鍵が登録されました。

GitHubにSSH接続をおこなう

GitHubへのSSH接続をテストしてみましょう。以下のコマンドを実行するとRSA fingerprint(サイトのなりすましをチェックする仕組み)が表示されます。GitHubのフィンガープリントと一致していれば、yesと入力します。

$ ssh -T git@github.com
The authenticity of host 'github.com (13.114.40.48)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes

GitHubのフィンガープリントは、以下のページで確認できます。

参考)GitHub の SSH キーフィンガープリント – GitHub Docs

続くメッセージに、GitHubのユーザ名を含むテキストが表示されればSSH接続テストは成功です。

Warning: Permanently added 'github.com,13.114.40.48' (RSA) to the list of known hosts.
Hi (GitHubのユーザ名)! You've successfully authenticated, but GitHub does not provide shell access.

では、実際にgitコマンドを使ってSSHでリポジトリをクローンしてみましょう。GitHubにてクローンしたいリポジトリを開き、Codeボタンをクリックします。次にSSHをクリックし、クリップボードアイコンをクリックします。接続用の文字列がコピーされます。

開発機のターミナルにて、git cloneのあとに接続用の文字列をペーストします。

$ git clone git@github.com:kabukinger/samplex.git
Cloning into 'samplex'...
remote: Enumerating objects: 25, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 25 (delta 1), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (25/25), 4.59 KiB | 783.00 KiB/s, done.
Resolving deltas: 100% (1/1), done.

これで、SSHでのgit cloneが実行できるようになりました。

GitHubにSSH接続 まとめ

ポテパンダの一言メモ
  • GitHubにSSH接続するには公開鍵・秘密鍵が必要
  • ssh-agentでパスフレーズ入力を自動化する
  • SSHでgit cloneするには、SSH用の接続文字列を使用する

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。