SourceTreeでGitHubリポジトリのクローンができない
SourceTreeでGitHubリポジトリのクローンができない。
※アプリが落ちるならこちらの可能性↓
- 現象と原因
- SSH鍵の生成
- GitHubへのインポート(GitHubの操作)
- GitHubへのインポート(SourceTreeの操作)
- おまけ:SSHエージェントの自動起動
- おまけ:一部のSSHも使えない
現象と原因
GitHubに作成したリポジトリをHTTPSでSourceTreeでクローン作成しようとすると 「ソースパス/ソース URL として正しくありません」 と表示されます。
詳細ボタンを押すとエラー内容が表示されます。
エラー:パスワード認証のサポートは2021年8月13日に削除されました。代わりに、個人用アクセストークンを使用してください。
remote:詳細については、https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/を参照してください。
SSH鍵の生成
HTTPSパスワード認証ができなくなったため、メッセージに記載されているアクセストークンかSSH鍵での認証になります。ここではSSH鍵での認証を行います。
ツールから「SSHキーの作成/インポート」を選択します。
「PuTTY Key Generator」という画面が起動するので、以下に変更してGenerateボタンを押下します。
- type of key to generate:ECDSA(もしくはED25519)
Generateボタンを押下するとシークバーが現れ、以下のメッセージが表示されるので、空白エリアでマウスを適当に動かします。(動かすとシークバーが動きます)
Please generate some randomness by moving mouse over the blank area.(空白の領域でマウスを動かしてランダムな値を生成してください)
鍵が生成できたら、赤枠黒塗りの部分をテキストファイルか何かにメモして、「Save Private key」ボタンを押下し鍵ファイルを保存します(拡張子.ppk)※ファイルは今後も鍵として使用するため、開発用フォルダ等わかりやすい場所への保存をお勧めします。
GitHubへのインポート(GitHubの操作)
保存した鍵ファイル(拡張子.ppk)をGitHubにインポートします。 githubのsetting > SSH and GPC keys で開いた画面で「New SSH key」ボタンを押下します。
Titleは任意の名前、Keyには「PuTTY Key Generator」画面でテキストファイル等にコピーした文字列を貼り付けて、「Add SSH key」ボタンを押下します。
以下のように画面に鍵が追加されていればOKです。
次はSourceTree側の操作です。ツールからSSHエージェントを起動します。
読み込み確認のメッセージが出るので「はい」を選択し、鍵を生成した際に保存したファイル(拡張子.ppk)を読み込みます。
GitHubへのインポート(SourceTreeの操作)
いよいよローカルにクローンを作成します。Cloneメニューからクローン作成画面を開きます。
GitHubからクローンを作成したいリポジトリのパス(SSH)を取得し、貼り付けます。保存先のパスにはクローンを作成するローカルパスを指定します。
クローンボタン押下後、SourceTree上で以下のような画面が出たら完了です。
おまけ:SSHエージェントの自動起動
「SourceTree起動時にSSHエージェントを起動します」にチェックを入れておくと、幸せになれると思う。
おまけ:一部のSSHも使えない
2021年8月HTTPSのパスワード認証ができなくなりましたが、その後、SSHのDSA,SHA-1(RSA)等も使用できなくなったようです。SHA-2(RSA)はサポートされてると記載してありますが、PuTTY Key GeneratorでRSAを鍵タイプRSAを指定すると使えない旨のエラーが発生したので(スクショ忘れました...)この記事の手順でやるとしたらECDSAかED25519の二択になりそうです。試してないのでわかりませんが。追加されたECDSAとED25519は新標準のためどちらかで鍵生成すればよいと思います。暗号難しい。