背景
今まで各個人のGitHubアカウントを使用していましたが、会社でまとめてGitHubアカウントを購入しようということになりました。
GitHub EnterPriseを購入した結果、SourceTreeで出来ていたプッシュやフェッチなど全ての操作が出来なくなりました。
どうやら色々調べた結果、認証方法が二段階認証に変更になったことが原因らしい。
SourceTreeで二段階認証を行うためにはどうすればいいかを試行錯誤し、実際に行った結果をまとめます。
前提
この作業を行った時点のSourceTreeのバージョンは「3.4.9.0」でした。
目次
手順
1. SourceTreeでの作成
1. 公開鍵と秘密鍵を作成する
-
以下のコマンドを実行する
ssh-keygen -t rsa -C [コメント(メールアドレスとか何でも良い、空でも良い)]
-
秘密鍵のアクセス権を設定する
cd~は公開鍵/秘密鍵フォルダに移動するためのコマンドなので、
既に移動している場合は不要cd ~/.ssh chmod 600 id_rsa
2. configファイルの作成
-
以下のコマンドを実行する
ssh-agentに鍵を登録しないと、SourceTreeが正常に鍵情報を読み込んでくれない模様eval `ssh-agent` ssh-add ~/.ssh/id_rsa
-
configファイルを作成する
touch config
-
2のconfigファイルをテキストファイルで開き、以下を記載する
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa
User git
2. GitHubでの登録
1. 公開鍵の登録
-
「Title」と「Key」を入力し、「Add SSH key」をクリックする
・Title : 任意のタイトル
・Key :「id_rsa.pub」(公開鍵)の内容をコピペする
-
作成した鍵の「Configure SSO」をクリックし、「Authorize」ボタンをクリックする
「Authorize」を既に行っている場合、「Deauthorize」になる
3. SourceTreeでの設定
1. RepositoryのURLを変更する
2. PuTTy/Pliknキーを作成する
4. コマンドプロンプト実行
1. plink.exeの登録
-
コマンドプロンプトを起動する
-
以下のコマンドを入力する
"C:\Users\XXXXXXXX\AppData\Local\SourceTree\app-3.4.9\tools\putty\plink.exe" -ssh -C -i "C:\Users\XXXXXXXX\.ssh\id_rsa.ppk" git@github.com
・C:\Users\XXXXXXXX\AppData\Local\SourceTree\app-3.4.9\tools\putty\plink.exe
⇒ plink.exeのファイルパスを設定する
・path\to\private\key.ppk
⇒ 【3-2. PuTTy/Pliknキーを作成する】で作成した「.ppk」のファイルパスを設定する