🦔

HTTPS連携とSSH連携の特徴やちがい

に公開

はじめに

GitHub や Bitbucket を使って作業していると、「HTTPS と SSH、結局どっちで連携するのが正解なんだろう?」と、ふと思いました。

HTTPS、SSH。言葉は知っているし、なんとなく使ってもいる。でも「なぜそれを選んでいるのか?」と聞かれると、うまく説明できない。今まで、なんとなくでやってきてしまっていました。

いいかげん勉強しようと調べてみたので、自分用のメモとして残しておきます。

HTTPS 連携とは何か

HTTPS 連携の場合、リポジトリの URL は https://github.com/ユーザー名/リポジトリ.git のような形になる。

この方法では、GitHub にアクセスする際に Personal Access Token (PAT)(いわば合言葉)を使って認証する。

SourceTree などの GUI ツールを使っていると、ブラウザでログインするだけで設定できるので手軽。

一方で、PC を変えたときやトークンの期限が切れたときには、再ログインが必要になることがある。

「まずは動かしたい」「学習中で、環境がまだ固まっていない」そんな段階では、HTTPS は相性が良い。

SSH 連携とは何か

SSH 連携の場合、リポジトリの URL は git@github.com:ユーザー名/リポジトリ.git のような形になる。

こちらは少し仕組みが違っていて、自分の PC に「秘密鍵」を作り、GitHub に「公開鍵」を登録することで認証する。

最初の設定は HTTPS より少し手間がかかる。ただ、一度設定してしまえば、その後は毎回ログインする必要がない。

トークンの期限切れもなく、同じ PC を使い続ける前提なら、かなり快適。

セキュリティ的にどちらが上なのか

調べる前は、「SSH のほうが上級者向けで、HTTPS は弱いのでは?」というイメージを少し持っていた。しかし、

  • HTTPS が危険、ということはない
  • SSH が特別に優れている、という話でもない

では、どう選べばいいのか

  • 今すぐ困らず使いたい、設定を簡単に済ませたい → HTTPS
  • 同じ環境で長く使う、ログインの手間を減らしたい → SSH

個人的な学び

最初は「HTTPS と SSH、どっちが正解なんだろう」と考えていた。

ただ、実際には、「自分は今、どんな使い方をしていて、何を重視しているのか」を整理する必要があった。

まとめ

  • HTTPS と SSH に正解・不正解はない
  • 自分の状況に合わせて選べば良い

Discussion