SourceTree を使ってみた
真夏のGithub集中講座 なるものに参加しました。
https://prtimes.jp/main/html/rd/p/000002134.000003670.html
ここ最近色々ありまして、より能動的に技術を摂取していきたい欲が出ていたのと、何よりも無料というところに惹かれて参加しました。
しかも開催時間も19時半からという業務を(ほぼ)気にしなくてよい時間帯。素晴らしい。主催はクリークアンドリバー社のPECというグループらしいです。
で、2回目でSourceTreeを利用したのですが、つい最近Githubは「アカウントとパスワードは2021年8月13日からセキュリティ的に使えません。代わりにパーソナルアクセストークン使ってね」という初心者殺し状態になってました。僕Github初心者です。どうしたらいいの。何より講師の方でさえSourceTreeからリポジトリにプッシュ出来なくて詰んでたという。
あ、講師の方はすごく講義内容がわかりやすかったのでありがたかったです。正直自分の中でGithubの用語と動作が噛み合ってなかったんですけど、そこが氷解したのがとてもよかった。あと僕が作ったクイズ「PS5の発売日はいつだったか?」が講義中に採用されたので嬉しかったです(小並感)
木曜の夜、金曜の夜、そして土曜と大体1日くらいかけて、どうにかこうにかSourceTree上からプッシュとクローン、だいたい全部できるようになりました。もし困っている人がいたらこれ見たらできるようになるかも、というメモを記述していきます。いやーめちゃくちゃかかった。こんなのGithub初心者がやるもんじゃない。
念の為ですが、これはWindows版です。
Mac版はMac持ってないのでわからないです。
あとこういうのはQiitaとかteratailに書けよって言われそう。
事前準備
まずGithubアカウントを用意してログイン、あとはSourceTreeをダウンロードしてインストールしておいてください。
最初にやるのはSourceTree上からSSHキーを作ります。(これになかなかたどり着かなくて本当に苦労した)
参考ページ:
https://azunobu.hatenablog.com/entry/2015/08/06/201449
復習のつもりで参考ページとほぼ同じ内容を書いていきます。参考ページは6年前のものなので、色々と違う箇所もありました。自分で撮ったスクショを上げつつまとめていきます。
SSHキー作成
SourceTreeのメニューの「ツール」→「SSHキーの作成/インポート」を選択します。
PuTTY Key Generator が起動します。
「パティ」って読むらしいです。接合材「putty」が元ネタ単語。でも間に挟まる「patty」って感じもする。ハンバーガーの「ビーフパティ」とかね。
リンク先だとまずSSH2を選べと書いてありますが、現バージョンではそんなものないのでデフォルトでSSH-2 RSAになっているみたいです。暗号強度も2048。6年前は1024だったのに2倍になってる。強い。「Generate」を押すと、以下のような画面になります。
この緑色のプログレスバーの下辺りでマウスカーソルを適当に動かします。適当に動かすとプログレスバーが進んでいきます。
「Please generate some randomness by moving the mouse over the blank area.」は「ブランクエリアでマウスを移動して、ランダム性を生成してください」ってことですかね。プログレスバー出たからしばらく待つかーと思って、トイレ行って戻ってきたら1ミリも進んでなかった。説明文はちゃんと読みましょう。
カーソルを適当に動かすことで、再現できないような暗号キーが生まれるんでしょうなあ。面白。
動かし終わると以下の画面になります。
モザイク入れてますが、これでSSHキーが出来ました。あとは「Key passphrase」にパスワードを設定します。このパスワードは忘れてしまうともうどうしようもなく、SSHキーを作り直すしかないそうなので気をつけましょう。
「Key passphrase」にパスワードを入れたら、「Confirm passphrase」に同じパスワードを入れます。確認のためにもう1回パスワードを入力してくださいってやつです。
「Key fingerprint」は鍵の指紋らしいです。公開しててもいいやつっぽいのでモザイクかけてません。
「Key comment」は鍵にコメントを残せるらしいです。作成者と作成年月日を書いておくものらしい? まあ面倒なのでそのままで……
「Save private key」ボタンを押して鍵を保存します。拡張子は「.ppk」。
「PuTTY Private Key」かな? たぶん。
中身はutf-8エンコードのテキストファイルです。
SourceTreeを起動していると、タスクバーにPageant(PuTTY authentication agent)が起動していると思いますので、これを右クリックして「Add key」を選びます。
Add key で「どの .ppk ファイルなの?」と聞かれるので、先ほど作成した .ppk ファイルを指定します。passphrase を聞かれたら入力して追加すれば、SourceTree側の準備は終わりです。
Github側
右上のアカウントメニューから「Settings」を選びます。
左側のリストにある「SSH and GPG keys」を選びます。
「New SSH key」をクリック。
すると次の画面になります。
タイトルは適当に入力してもらうとして、問題はKeyのほうでした。
ここにテキトーにコピペするだけではどうにも動かないんですね。
どういう形で記述するかというと、まずは先ほど作成した .ppk ファイルをテキストエディタなどで開きます。
うひぃ。モザイクだらけ……
これをそのままフォームにコピペしてもダメです。どういった形式にするかというと、まず赤枠で囲った部分を抜き出してきます。
抜き出したら、「ssh-rsa」の後ろに半角空白をつけます。
この状態のものをフォームに入力します。
画像でもわかりやすいようにssh-rsaの後ろに半角空白を付けています。
この状態でTitleを入力して「Add SSH Key」をクリックすれば完了です。
SourceTree上からCloneとPushができるようになっているはずです。
その際、passphrase は何度か聞かれると思います。
Push時
PushするときにCredential Helper Selectorが起動する場合があると思います。これはよほどでなければmanagerを選択しておくとよいです。
参考ページ:
https://yoshihiko-nakata.com/archives/1129
no helper のまま Always use this from now on にチェック入れちゃった場合は戻す方法がわからないので、アンインストール→再インストールになるかも。
おわり
だいぶ長くなりましたが、やってみればSSHキーを作ってきちんと登録する、ただそれだけなんですよね……どうしてここまで難しいのか……
今回の記事は以上です。
久しぶりに書いたけど、もっとこういうのやってかないとダメね……
内容にミスなどあったら、コメントなどで教えてくださると修正します。
よろしくおねがいします。