SSHを利用してGitHubとSourcetreeを連携する

2024/11/04に公開

はじめに

2021年8月13日をもってGitHubではパスワード認証が廃止されました。伴い、SourcetreeからのPush等ができなくなり、また、自分の場合はOAuth認証もできなくなったので自身の備忘録も兼ねて残します。

実行環境

  • MacOS Sonoma v14.6.1
  • Sourcetree v4.2.8

事前準備

  • Personal Access Tokenの生成

公開鍵と秘密鍵の生成

鍵情報は~/.sshディレクトリに作成します。.sshディレクトリが存在しない場合は作成します。

$ mkdir ~/.ssh # .sshディレクトリが存在しない場合
$ cd ~/.ssh # ~/.sshディレクトリに移動
$ ssh-keygen -t rsa -f hoge

ssh-keygenコマンドを実行すると、パスワード設定について問われます。パスワードを設定しない場合はそのままEnterでOKです。

Enter passphrase (empty for no passphrase): # パスワードを設定
Enter same passphrase again: # パスワード再入力

コマンドを実行したら、lsコマンドを実行してhogeファイルとhoge.pubファイルが生成されていることを確認します。

鍵情報のconfig設定

~/.sshディレクトリにconfigファイルを作成して、先ほど生成した秘密鍵の情報を登録します。

$ touch config # configファイルが存在しない場合
$ vi config 

登録する内容は下記です。

Host hoge
    HostName github.com
    IdentityFile ~/.ssh/hoge
    User git
    AddKeysToAgent yes
    UseKeychain yes

公開鍵のGitHub登録

以下コマンドで公開鍵ファイルに記載されている内容をコピーします。

$ pbcopy < ~/.ssh/hoge.pub

GitHub settings(アイコンから)のSSH and GPG keysにアクセスしてNew SSH keyをクリックします。Title項目とKey項目それぞれ入力して、Add SSH keyをクリックします。

  • Title(わかりやすい名前)
    • ex.) hoge-pub-key
  • Key
    • 先ほどコピーした公開鍵を貼り付け
      SSH接続できているかは下記コマンドを実行することで確認ができます。
$ ssh -T hoge

接続できている場合は下記メッセージが表示されます。

Hi hoge! You've successfully authenticated, but GitHub does not provide shell access.

SourcetreeとGitHubの連携

アカウント作成画面から行います。下記入力部分を埋めて保存をクリックします。

  • ユーザー名
    • GitHubアカウント名
  • Personal Access Token
    • 事前準備で生成したToken
  • SSHキー
    • キーを生成をクリックし何もせず作成をクリック
    • するとGitHub上で作成した名前が表示されます

まとめ

以上で、SourcetreeからPush等ができるようになっているはずです。
間違い等ありましたら、ご指摘いただけますと幸いです。

Discussion