GitHubの自分のリポジトリにpushするときに、SSHキーを使ってできるのだが、ちょっとハマったので、備忘録しておく。
ハマったポイントは、
1. ~/.ssh/id_rsa は、他の環境に使ってる
2. 先にGitHubでリポジトリ作ってそれをcloneした状態だった
って感じかなー。
1は、id_rsaをGitHub用に使える場合、とくに問題にならないけど、私の場合は、色んなSSH環境に接続する手前、id_rsa_xxxみたいにファイル名で環境を管理してる。
ので、ハマった。
2は、GitHubからcloneしてくるときに、
ここからURLをclipして
$ git clone https://github.com/...
ってやってしまったもんですから、SSH接続にならないので、1をクリアしても結局、pushできないみたいなハマり方をした。
で、きちんと、整理して、以下の手順を実施すれば、いけると思う。
1. SSHキーを作成
2. GitHubにSSHキーを登録
3. ~/.ssh/configに追加
4. git remote originの設定変更
5. git push
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
- 作者: 大塚弘記
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る
1. SSHキーを作成
以下のコマンドを実行して作成する。
$ cd ~/.ssh $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/xxx/.ssh/id_rsa): id_rsa_github Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_rsa_github. Your public key has been saved in id_rsa_github.pub. ...
冒頭に述べたとおり、 ~/.ssh/id_rsaに出力したくないので、~/.sshディレクトリに移動してから、id_rsa_githubって名前を指定してる。
これで~/.sshディレクトリ直下に、
のファイルができているはず。
2. GitHubにSSHキーを登録
次に、id_rsa_github.pubの中身をGitHubに登録するのだが、、、
このあたりは、GitHubなり、他サイトなりを参照いただきたく、省略させていただきます。
※一応、公式のリンクを貼っときます
Generating SSH Keys · GitHub Help
3. ~/.ssh/configに追加
Vimなりで、以下のファイルを開いて追記する。
$ vim ~/.ssh/config
Host github.com HostName github.com User git IdentityFile "/Users/xxx/.ssh/id_rsa_github"
ここでハマりポイント1の登場。
Host github.com
のところは、4の手順で実施する、 git://github.com/... のgithub.comとそろえないと認識されないから注意。
つまり、
Host github.com.hogehoge
とかして、 git://github.com.hogehoge/... ってしても良い。
hogehogeのところを目的に応じて変更するとかで、管理できたりするだろう。
4. git remote originの設定変更
ハマりポイント2の登場。
HTTPSでcloneしてるので、以下のコマンドを実行して、SSHでremote接続するように変更する。
$ git remote -v origin https://github.com/USERNAME/REPOSITORY.git (fetch) origin https://github.com/USERNAME/REPOSITORY.git (push)
で、remoteがHTTPSになってることを確認して、
$ git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
って実行してやると、OK。
5. git push
git push origin master
って実行するとうまいこといけるはず!!
以上。