git pushでエラーが出たのでssh接続するための設定を行った

今日バイト仲間がgit pushできない問題に遭遇したときの対処方法です。

問題はpushのときに以下のように出てきてしまったことでした。

fatal: repository <レポジトリ名> not found

https通信のままがだめなのかな?と考えsshに移行することになりました。

SSH接続の準備をするにあたって以下の3つのウェブサイトがとても役に立ちました。

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

git pushまたは、cloneの時にRepository not foundと言われてしまった時の対処方法

GitやGitHubでSSHに接続する方法をわかりやすく解説!

~/.sshディレクトリに移動してkeyを作成

$ cd ~/.ssh

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

//上の3つはすべて何も打たずEnterでOK

上の3つはすべて何も打たずにEnter連打でOKです。

これでkeyが作成されます。語尾がpubのファイルが公開鍵で、もう一つが秘密鍵です。両方大事ですが、秘密鍵は他の人に渡してはいけません。

公開鍵をGitHubに貼り付ける

以下のコマンドで 公開鍵 の内容をコピーしてGitHubのテキストボックスに貼り付けます。 (ここで我々は 秘密鍵 を貼り付けようとしてエラーが出ました。)

$ pbcopy < ~/.ssh/id_rsa.pub

~/.ssh/config に必要情報を記入

今度は自分の 秘密鍵 を登録します。公開鍵の名前を打つと当たり前ですがエラーが出ます。

~/.ssh/config にて以下の内容を書きます。

Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/<自分の秘密鍵の名前をここに>
  User git

これで以下のコマンドを売って

$ ssh -T git@github.com

これで何もエラーがでなければOKです。

ラスト:~/.gitconfigにて追記

最後は~/.gitconfigにて

[url "github:"]
    InsteadOf = https://github.com/
    InsteadOf = git@github.com:

と追記して完了です。(こうしないとhttps通信のままになるんだと思います。)