初めてのgitは5ステップで完了


はじめに

no such identity: /Users/ユーザ名/.ssh/id_rsaエラーに遭遇し、解決策を調べる中で学んだ、gitをはじめる際の5つのステップをまとめます。

ちなみに、上記エラーに対しての対処法は、Step4に記しています。

5つのステップ

Step1: 鍵ペアを作成

ssh-keygenコマンドで、公開鍵、秘密鍵のペアを作成する。

-tオプションで鍵の種類(ここでは、RSA)を指定し、-Cオプションではコメントを登録するが、メールアドレスを指定するのが一般的だそう。また、-bオプションで鍵の長さを指定するが、セキュリティの観点から4096を指定すると良い(デフォルトでは2048が多いよう)。

さらに、-fオプションでファイル名を指定することができる。鍵を作成する場面は、Githubと通信する時以外にもあり、例えば、AWSにアプリをデプロイするときや、VPSと接続する時など多々ある。その度、デフォルトでは、鍵は全て、id_rsaid_rsa.pubという名前で作られるため、適宜変更していく必要がある。
よって、Githubで利用する鍵の名前は、github_rsa(もしくは、github_id_rsa)のように変更するとする良い。

コマンド実行後、まずは、SSH Keysの保存先を聞かれるが、特に問題なければEnterキーを押す。次に、パスフレーズ(パスワードのようなもの)を入力する。ここで、入力したパスフレーズは画面に表示されないことに注意する。

❯ ssh-keygen -t rsa -b 4096 -C "[email protected]" -f github_rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/takuyanin/.ssh/github_rsa): (Enterを押す)
Enter passphrase (empty for no passphrase): (パスワードを入力)
Enter same passphrase again: (再度パスワードを入力)
Your identification has been saved in /Users/takuyanin/.ssh/github_rsa.
Your public key has been saved in /Users/takuyanin/.ssh/github_rsa.pub.
The key fingerprint is:
SHA256:UpcWqlhLGY1RN2iAQWfBDRysjAja0CGAz2rbcUiCpoY [email protected]
The key's randomart image is:
+---[RSA 4096]----+
|=..oo*X@..+      |
|+.. .o=o=o +     |
|+* o .+.o +      |
|+o=.o+ + o       |
|+.o o + S        |
|Eo o . .         |
|o o o            |
| . .             |
|                 |
+----[SHA256]-----+

実行後、github_rsa(秘密鍵)と、github_rsa.pub(公開鍵)が~/.sshフォルダに作成される。
また、key fingerprintも表示される。key fingerprintとは言葉通り、まさに鍵の指紋のようなもので、データが改ざんされていないか確認するために使われるよう。より詳細に知りたい方は、ここをチェック。

Step2: 秘密鍵の登録(任意)

ここから、~/.sshフォルダでコマンドを実行する(別の場所からでも問題ないが、タイプが長くなる)。

下記のコマンドを実行すると、秘密鍵をssh-agentデーモンに登録することで、SSH接続の際にパスワードの入力を省くことができる。

❯ ssh-add -K github_id_rsa

Identity added: /Users/takuyanin/.ssh/github_id_rsa ([email protected])

次のコマンドでssh-addがきちんと行われたかを確認できる。

❯ ssh-add -l

4096
SHA256:UpcWqlhLGY1RN2iAQWfBDRysjAja0CGAz2rbcUiCpoY [email protected]

Step3: 公開鍵をGithubに配置

まずは、pbcopyコマンドで公開鍵の中身をクリップボードにコピーする。

❯ pbcopy < github_id_rsa.pub

そして、GithubのSettingsを開き、Githubに鍵登録する。

1. 「New SSH key」をクリック

2. 公開鍵をペースト

そして、「Add SSH key」をクリックして鍵の登録が完了。

Step4: SSH接続できるか確認

❯ ssh -T [email protected]

no such identity: /Users/takuyanin/.ssh/id_rsa: No such file or directory
[email protected]: Permission denied (publickey).

上記コマンドを実行した時に、no such identity: /Users/takuyanin/.ssh/id_rsa: No such file or directory
[email protected]: Permission denied (publickey).
といったエラーが出た場合は、configファイル(がなければ作成し、)に下記のように設定する。
もしかしたら、IdentityFile~/.ssh/id_rsaのままかも(名前を変更したため、ここも変更する必要がある)。

また、.ssh/configとは、SSH経由でリモートサーバと接続する際に利用される設定ファイル。

~/.ssh/config
Host github
    HostName github.com
    IdentityFile ~/.ssh/github_id_rsa
    User git

もう一度実行し、次のように出力されれば、成功。

❯ ssh -T [email protected]
Hi takuyanin! You've successfully authenticated, but GitHub does not provide shell access.

Step5: プロジェクト始動

5.1: Githubでレポジトリ作成

まずは、プロジェクト(hoge)をGithubで作成する。「New repository」から、プロジェクト名を記入し、レポジトリを作成する。

5.2: ローカルでプロジェクトを作成

作成後は、そのプロジェクトディレクトリに移動して作業する。

mkdir /Users/takuyanin/hoge
❯ cd /Users/takuyanin/hoge

5.3: 初期化

❯ git init 

Initialized empty Git repository in /Users/takuyanin/hoge/.git/

5.4: ファイル作成

touch README.md
❯ echo "# hoge" >> README.md

5.5: ステージングする

❯ git add .

5.6: コミットする

❯ git commit -m "first commit"

5.7: リモートリポジトリと連携

最初にGithub上で作った、リモートリポジトリとローカルのリポジトリを連携する。

次の2つのどちらかを実行する

1. git@で登録

❯ git remote add origin [email protected]:takuyanin/hoge.git

2. httpsで登録

❯ git remote add origin https://github.com/takuyanin/hoge

そして、きちんと連携されたか確認。

❯ git remote -v

origin  [email protected]:takuyanin/hoge.git (fetch)
origin  [email protected]:takuyanin/hoge.git (push)

5.8: ローカルでの変更をリモートと同期

origin(Githubとしてもリモートリポジトリ)のmaster(メインブランチ)にプッシュする。

❯ git push origin master

補足

ステップ1で作成した公開鍵のフィンガープリント(鍵の指紋)を確認したい場合は、ssh-keygenコマンドで確認できる。

❯ ssh-keygen -lf ~/.ssh/github_id_rsa.pub

4096 SHA256:UpcWqlhLGY1RN2iAQWfBDRysjAja0CGAz2rbcUiCpoY [email protected] (RSA)

参考

まとめ

上記に記しましたが、初めてGithubを利用する際は、次のようなステップをふむ必要があります。

Step1: 鍵ペアを作成
Step2: 秘密鍵の登録(任意)
Step3: 公開鍵をGithubに配置
Step4: SSH接続できるか確認
Step5: プロジェクト始動