git for windows だけで出来る ssh

最近 xyzzy の git のを色々試してみて気づいたのでちょっと色々試した事とかを書いてみる。git で ssh を使う時の解説ページがいくつもある。ただ何故かほぼ putty を使っている。個人的にも putty を使ってたので、puttyssh を使う人がいるのは分かるんだけど、git の場合 git bash があるから別に絶対 putty って事もないはず・・・。しかし Windows だと何故かほぼ ssh を使う時 putty を使ってる説明になっている。もしかして putty じゃないと上手くいかないのかなとか色々思ったり。

なので putty を使わないで git for windowsssh を試してみた。適当にやったら普通に出来た。なんで windows だと putty の説明になっているのか分からないが、説明で見た putty を使う方法より git for windows だけの方がインストールする手間も少なくて簡単な気がしないでもない。むしろ putty を使う事で複雑になっている気が。

これはもしかして布教なのか? Windows 以外の方が分かりやすくて簡単だよ的な布教なのか?ヨーダのようなすばらしい導師に導かれたい人は Mac にお布施をしろと?Windows でフォースの暗黒面を前面に押し出した Emacs もどきの xyzzy を使っているベーダーは putty 使っとけと?だが待ってほしい。フォースの暗黒面に染まりきってる xyzzy ユーザーなら Windows だけ除け者になる理由はない事に気づくはずだ。っていうか、Windows で git を使おうと思ったら大体インストールする git for windowsssh も一緒に入っているわけで、あえて別のやり方って分かり難くないのかこれはと。ということで日本語だと何故か猫も杓子も putty で説明してるので、適当にやってみたらできた git for windowsssh-agent を使って SSH をしてみる話。

  1. git for windows をインストールする
  2. git bash のエディタの設定をする
  3. git bash で vi 開いちゃって閉じたい
  4. git for windows のインストールが終わったら確認
  5. git for windows で ssh の鍵を作る
  6. git for windows で ssh の鍵を登録する
  7. gitlab の SSH 設定をする
  8. ssh の設定が上手く言っているか試す
  9. ssh の config 設定をしておく
  10. https で clone したのを ssh にする
  11. SSH で git push とかしてみる
  12. 簡単に`ssh-agent`して ssh-add する
  13. git bash すると ssh-agent を自動で起動
  14. SSHの方が遅いからHTTPSにする?
  15. git bash で文字化けしたので何とかした話


少々 git bash がとっつき難くても、ついでに bash にも慣れて ssh-agent も覚えてしまえば、実は mac でも linux でも似たような操作で出来ちゃって winndows 使ってる人が知識を広げるのに git bash はとても向いてる気がする。あと捻くれものの為に、説明は github じゃなくて gitlab を使う。github の説明はたくさんあるけど gitlab での説明は少ないので少しは為になるかと。

■詳しい話はもっと偉い人が書いてるのを読んだら良いと思う
ちなみに私は適当にやったら動くなと思っただけで、git for windows に関して本当に詳しいわけでも git に詳しいわけでもない。それどころかこの設定してそんな時間が経っているわけでもないし、まだ常用しているわけでもないのでずっと使ってみたら問題があるかも知れない。本当の細かい話は偉いヨーダ的な人に聞いたら良いと思う。

xyzzy的な話
ここに書いた ssh の設定とかをしても、xyzzy から git add したり git commit したりする分には特に問題ない。push とか clone とかは git bash からやった方が安心かもしれないが、やっぱり add と commit が回数が多い気がするので、そこさえ抑えれば、後は別に git bash でいい気はする。

■git gui的な話
git gui でも ssh-agent の設定をすれば ssh 出来そうだったけど確かめてはいない。git gui の場合は help の show ssh key から鍵が見えるので多分出来るんじゃないかと思う。