GitHubデスクトップでやっていたら苦労した話
gitコマンド覚えなきゃいけないんだよな〜と思いながら後回しにし続けてデスクトップアプリからの操作に頼っていました。
先日からTypeScriptの勉強を始めたのですが教材の中で実行されているコマンドが何を意味しているのかわけがわからず、自分が今何をしているのか全くわからないまま進めてエラーで詰まりました。
ターミナルからcloneを作成しようとしたところうまくいかず、エラー文を調べてみるとSSH鍵の認証ができていない様子。
# コマンド
% ssh -T git@github.com
# 結果
git@github.com: Permission denied (publickey).
AWSにデプロイした時にssh鍵の設定をしたのは覚えていたのでそれでできるものだと思い込んでいました。
色々調べてみたところ新たにssh鍵を作成してgitに設定すればいけそうだったのでやってみました。
ターミナルで操作
# sshに移動
% cd ~/.ssh
# ssh鍵を生成
% ssh-keygen -t rsa
# 結果
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/****/.ssh/id_rsa):
/Users/****/.ssh/id_rsa already exists.
Overwrite (y/n)?
# ファイルが作成できているか確認
% ls
# ファイルが2つ作成されている
id_rsa id_rsa.pub
# 公開鍵をコピーしておく
% pbcopy < ~/.ssh/id_rsa.pub
GitHubにアクセス
New SSH keyをクリックして先ほどコピーしたものを貼り付けて保存。
できているかチェック
# コマンド
% ssh -T git@github.com
# 結果
Enter passphrase for key '/Users/****/.ssh/id_rsa':
ここで毎回パスフレーズを聞かれてしまってなかなか鬱陶しかったので
# SSH鍵をssh-agentに登録(****にはターミナルの一番最初に表示されているユーザーネームを入力)
$ ssh-add /Users/****/.ssh/id_rsa
# 登録されていることを確認する
$ ssh-add -l
以上でクローンが作成できました。
SSH鍵が現在自分のページだと2つ表示されているのですが、最初に登録していたものはグレーになり、今回登録したものが緑色で表示されています。
なんだか嫌な予感が若干しており、AWSにデプロイするときにssh鍵が違うんだけど?的なことになりそうですがその時はその時でまた戦おうと思います。
参考にさせていただきました
@shizuma様
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
@shinki_uei様
GitのSSH鍵認証で毎回パスワードを要求される
ありがとうございました。