sshでgitからgithubへ接続する

以前、初心者ながら git を使ってみたく色々テストしていました。

ググりながら Git Bash や VS Code、Sourcetree を使ってリモートリポジトリへのプッシュとかまでできるようになったのですが、テスト止まりで実際に使用することはなくしばらく放置。

ポートフォリオに新しくサイトを追加しようと思い立ったので、ついでに git でソース管理してみようと思いました。

そう思った矢先にプッシュでエラーになったので色々調べたメモ書きです。

Windows 環境です。

 

今回のエラーはどうやら HTTPS での接続認証ができなくなったためらしいです。

以下の記事にそれっぽいことが書いてあり参考にさせていただきました。

git pushの接続方式をhttpsからsshに切り替える

ssh で github へ接続する流れ

  1. sshキーの作成
  2. 作成したキーを github に設定する
  3. 接続確認

やる作業としては多くないです。

sshキーの作成

Git Bash を立ち上げて、まずは .ssh ディレクトリに移動します。
(c/User/<ユーザー名>/.ssh というフォルダに移動します)

cd ~/.ssh

次いでキーの生成をします。

ssh-keygen -t rsa

よりセキュリティを強化するなら

ssh-keygen -t rsa -b 4096

かと思いますが、初期値のままでも問題ないようです。
慣れてきたら変更するでも良いのかなと。
ちなみに -t は暗号キーのタイプを指定、-b で長さを指定できます。
長さはデフォルト 2,048 bit です。

コマンドを実行すると↓のようなメッセージが表示されます。

Enter file in which to save the key (/Users/<ユーザー名>/.ssh/id_rsa):

キーの名前を変更する場合はここで入力。
:の後ろに変更後の名前を入力します。

Enter file in which to save the key (/Users/<ユーザー名>/.ssh/id_rsa):/Users/<ユーザー名>/.ssh/id_github_rsa

ここで名前を変更した場合は後で設定ファイルを作って変更した名前を登録する作業が必要になります。
接続する際にどのキーを使うか探しに行くようなのですが、デフォルトだとid_rsa、id_dsa、identity といった3つの種類しか探しに行かないので、変更後の名前のキーを使うよ、という設定が必要です。

次にエンターを押すとパスフレーズを聞かれるのですが、とりあえず入力無しでOKと思います。
そのまま2回エンターで。

設定したい場合は適当にフレーズを入力、確認でもう一度入力でOKと思います。

これでキーが生成されていると思いますので、フォルダを開いて確認します。
id_github_rsa、id_github_rsa.pub という2つのファイルができていればOKです。
id_github_rsa.pub の方は中身をgithub に登録しますืので 何かしらのエディターで開いて中身をコピーしておいて下さい。

名前を変更している場合はここで config ファイルの作成が必要です。
同じフォルダに config というファイルを作成して中を↓のように書きます。拡張子はなくてOKです。
ここではキーの名前を id_github_rsa に変更したものとして記述しています。

Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_github_rsa
  User git

github にsshキーを設定する

自分のgithub アカウントにログインして、右上のアイコンから Settings を選択します。

開いたメニューの SSH and GPG keys タブで New SSH key をクリックします。

下の画面が開いたら Title に自分が分かりやすい適当なタイトルをつけて、Key にさっきコピーしたやつを貼り付けます。

Title を何にして良いか迷ったら自分のPC名とかで良いと思います。

最後に Add SSH key をクリックすれば設定完了です。

接続を確認する

Git Bash に戻って以下のコマンドを入力してエンターを押して下さい。

ssh -T git@github.com

Hi <ユーザー名>! You’ve successfully authenticated, but GitHub does not provide shell access.

とメッセージが出れば接続完了です。

ssh での接続は面倒だけどしょうがない

youtube とかで github の使い方を調べても入門向けなので 「今回は簡単な方で~」という説明で HTTPS 認証しかなく、それで使えていたので今回のエラーは困りました。

なんとか ssh でも使えるようになったので、もう少し細かな設定とかにもチャレンジしたいと思います。いずれ。

他、時間があれば Sourcetree での設定方法も書けたら良いなと思っています。

以上。

 

この記事は以下のサイトを参考に執筆しました。

投稿者の方、ありがとうございます。

GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

広告
最新情報をチェックしよう!