51
65

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 3 years have passed since last update.

Windows+SourceTree+GithubではSSHログインを有効にしておこう

Last updated at Posted at 2021-03-02

概要

Windows+SourceTree+Githubの認証は様々ありますが、一番安定するのはこのパターンだと思います。

  • Windows10
  • SourceTree v3.3.9

SourceTreeのGithub認証設定の確認

Githubで普通にログイン出来る環境でSourceTreeでツール→オプション→認証
が以下のように

  • 認証:OAuth
  • プロトコル:SSH

になっていれば何も気にしなくて良いです
image.png

そうでない場合は以下の設定をします

Putty Key GeneratorでSSHの公開鍵と秘密鍵のペアを生成

SourceTree上でツール→SSHキーの作成/インポート

image.png

Putty Key Generatorが立ち上がるので Generateを選ぶ

image.png

このあたりをマウスでグリグリ動かして乱数を生成していく
image.png

生成されたらKey PassphraseとConfirm Passphraseに自分で決めたパスワードを入力しておいて
「Save Public Key」と「Save Private Key」でそれぞれ公開鍵と秘密鍵のペア鍵ファイルを適当なディレクトリに保存する
save.png

OpenSSH公開鍵の保存

そして赤で囲った部分も別のtxtファイルとして適当なディレクトリに保存する(OpenSSHの公開鍵としてGithub上で使います)
OpenSSH.png

つまり Putty Key Generator 経由で3個のファイルを生成してします。

  • Putty秘密鍵 (id_rsa_Github_YourName.ppk みたいな*.ppk )
  • Putty公開鍵 (id_rsa_Github_YourName.pub みたいな*.pub)
  • OpenSSH公開鍵 (id_rsa_Github_YourName_OpenSSH.txt みたいな普通のテキストファイルでOK)

Github上で公開鍵を登録

https://github.com/settings/keys
https://github.com/settings/keys

にブラウザでアクセスして「New SSH Key」をして、適当なタイトルをつけて、KeyのところにOpenSSH公開鍵の保存 で保存したテキストの内容をコピーして「Add SSH Key」で登録します
image.png

(これでGithub側に、さっきPutty Key Generatorで生成したあなたの公開鍵、秘密鍵のペアに相当する認証が通るようになります)
(GithubはPuttyで生成した公開鍵 .pub を認識できないため、OpenSSH用の公開鍵形式を使います)

最後にSourceTreeの認証をSSH経由にして、生成した鍵を使う

再度SourceTree上でツール→SSHキーの作成/インポート
を選んでPutty Key Generatorが起動したらLoadをして ppk (先ほど生成した秘密鍵の方)を設定します。
image.png

SourceTree上の認証をSSH+OAuth経由に設定して認証できることを確認する

image.png

これで当初の目的が達成できました。

生成したputtyの秘密鍵、puttyの公開鍵、OpenSSHの公開鍵は紛失しないようにしましょう(正確には、紛失したときはGithub上ですぐにKeyをRevokeするようにしましょう)

Q&A

なぜHTTPS+Token認証はダメなのか

プライベートリポジトリ+Git Submoduleのリポジトリ構造になったときに、HTTPSだとSubmodule再帰のチェックアウトに失敗するため

なぜBasic認証はダメなのか

リポジトリの設定でBasic認証が不可になっている場合、チェックアウトなどに失敗するため(そして仕事のプライベートリポジトリは往々にしてセキュリティ的に不可になっています)

Githubリポジトリからのチェックアウト

Github上でCode→Clone→SSH(git@github~~~からはじまる )を選んでコピー
image.png

SourceTreeでクローンするときのリモートリポジトリurlに貼り付け

サブモジュールに再帰のチェックを入れておく と安心です(そうじゃないとSubmodule周りでハマるので)
image.png

51
65
1

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
51
65

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?