ssh接続でgithubのリポジトリをローカルにクローンする。(for macbook)
結構ハマったので忘れないようにメモ。
問題と結論を先に書いておくと、
ssh接続は問題なさそうなのにgit cloneができなかったんだけど、ホスト名を別に命名したならそちらを使いましょうというだけの話でした。
基本的には以下を参照した。
今日からはじめるGitHub 〜 初心者がGitをインストールして、プルリクできるようになるまでを解説 - エンジニアHub|若手Webエンジニアのキャリアを考える!
一連の流れ
- ssh-keygenで鍵を生成する。
(コマンドを打つと、鍵ファイル名の変更とパスフレーズの設定がある。通常は.ssh配下に鍵が生成される) - 生成された秘密鍵のパーミッションを600に変更する。
- (通常).ssh配下のconfigファイルに秘密鍵と接続先の対応を記載する。
- githubに公開鍵を設定する。(https://github.com/settings/profile)
- 「ssh github」で接続確認をする。「Hi (user name)!」って言ってもらえれば大丈夫。
※ここで「PTY allocation request failed on channel 0」エラーが出ていて気になるんだけど、あっても問題はない様子。
オプションで仮想端末の割り当て禁止してあげると消えはするけど、まだ調べている最中なのでこのまま続行。 - 「git clone git@github.com:(user name)/(repository name).git」を送信。怒られた。(怒られない場合は終了)
エラーを見ると「Permission denied(publickey)」とあるが、公開鍵は4.で登録済なので、多分秘密鍵との対応が取れてないのかなと、思い色々検索。
「git-add -K (秘密鍵名称)」で登録できて一応git cloneできるみたいだけど、設定したパスフレーズまで省略される。
そもそもこの登録ってssh-agentのためのものだし、これは私が求めている答えではなさそうなので、ssh-add -Dで登録削除。
なんだか、そもそもgitコマンドで見るところ間違ってないか?と思い、よーくコマンドを見て、検索をして、
【メモ】githubの複数アカウントにSSH接続するための設定手順 | Developers.IO
……ここで、3.で生成したファイルをもう一度見る、と。
Host github
HostName github.com
User git
...
「git clone git@github.com:(user name)/(repository name).git」ではなく、
「git clone git@github:(user name)/(repository name).git」ですね…… - git cloneできました。(滅茶苦茶時間かかった)
明日はリポジトリにソースを上げるぞ。
……早く帰宅できたら。