7
6

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.

SourceTreeからSSHでGitHubに接続する

Last updated at Posted at 2021-08-29

前置き

2021年8月13日をもってGitHubではパスワード認証が廃止され、個人アクセストークンかSSHでの認証へと移行されました。
=> https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

それに伴いSourceTreeでクローンしていたリポジトリにも接続できなくなっていたので、
GitHubにSSHを設定しSourceTreeと連携させた手順を記します。

実行環境

  • MacOS Catalina v10.15.7
  • Source Tree v4.1.1

SSH Keyの作成

SSH Key作成コマンド

下記コマンドを叩いてSSH Key作成を開始します。

% ssh-keygen -t rsa -b 4069 -C "github_email_address"
  • -t: 暗号化方式 rsa公開鍵暗号方式を指定
  • -b: 暗号化強度 鍵長4069を指定
  • -C: コメント GitHub登録のメアドを指定(自由です)

パスワード設定

続いてパスワードを設定します。
設定しない場合は空のままEnterを叩けばOKです。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user_name/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): # パスワードを設定
Enter same passphrase again: # パスワード再入力

SSH Key出力

問題なく処理が完了すれば、生成されたSSH Keyの出力情報が表示されます。
初めて作成する場合はid_rsaid_rsa_pubという名前で生成されます。
ここで生成された秘密鍵(id_rsa)は自分以外には漏らさないように厳重に管理してください。

Your identification has been saved in /Users/user_name/.ssh/id_rsa. # 作成された秘密鍵
Your public key has been saved in /Users/user_name/.ssh/id_rsa.pub. # 作成された公開鍵

The key fingerprint is:
SHA256: github_email_address
The key's randomart image is:
+---[RSA 4069]----+
|        略       |
+----[SHA256]-----+

GitHubへSSH Keyを登録

  1. GitHubへログインし、 Settings → SSH and GPG keys → New SSH Key を選択
  2. Titleに識別用の名前をつける (今回はMacBookと名付けました)
  3. Bodyに先程作成した公開鍵(id_rsa.pub)の中身をペースト
  4. Add Keyを選択し登録

登録が完了すると以下のような表示になります。

ssh_key_added.png

SSH Config設定

GitHub接続へ利用するSSH Keyの設定を行う。

  1. vimで ~/.ssh/configを開く
  2. GitHub接続用情報を追加し、IdentityFileの欄に作成した秘密鍵を指定し上書き保存
~/.ssh/config
# --- GitHub ---
Host github
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  User git
# ---------------------------
  1. 所有者にのみ読み書き権限を付与するため、 chmod 600 ~/.ssh/config を実行

秘密鍵をssh-agentへ登録

ssh-agentとは、RSA方式での認証を用いてSSH接続を行う際、秘密鍵に設定しているパスワードの入力を自動で行う機能です。

  1. eval "$(ssh-agent -s)" を叩き、Agent pidが表示されればssh-agentの起動OK
  2. ssh-add ~/.ssh/id_rsa(秘密鍵) を叩き、秘密鍵に設定しているパスワードを入力
  3. ssh-add -l で登録されている秘密鍵を確認し、追加したものが表示されればOK

SSH疎通確認

登録した公開鍵と秘密鍵を用いてGitHubへの疎通確認をします。

  1. ターミナルにて ssh -T git@github.com を実行
  2. 表示されるfingerprintが GitHub's SSH key fingerprints に記載のものと一致するか確認しyesを叩く
  3. Hi username! You've successfully authenticated, but GitHub does not provide shell access. と表示されれば疎通確認OK

Source Treeに紐付け

Source Tree側でプロフィール設定を行い、SSH接続を用いるようにします。

  1. 環境設定 → ユーザー選択(なければ作成) → 編集 でユーザーの編集設定を開く
  2. 認証タイプをOAuth、プロトコルをSSHにし、SSHキーに作成した公開鍵(id_rsa.pub)が設定されていることを確認
    sourceTree.png
  3. 保存をクリックするとGitHubが開かれて鍵が照合され、問題なければ再びSource Treeが開かれる
  4. GitHubのリポジトリページにて、CodeからSSH接続用のURLをコピーしてSouce Treeでクローンし直す
    (既存のクローン済みリポジトリもSSHでクローンし直す必要がありそう)
    image.png

終わりに

まだまだ勉強中の身ですので、
間違いやタイポ、不適切な表現がありましたらご指摘頂けると幸いです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?