プライベート(リモート)リポジトリへPushするようにした手順メモ
プライベートリポジトリへpushできなかった。
Gitの設定(SSH鍵の作成と登録)ができてなかったから。
SHH鍵についてのざっくりとした理解は下記の通り
・サーバ側で公開鍵、ユーザ側で秘密鍵を持つ。
・複数人で1つのリモートリポジトリを共有する場合は、公開鍵を相手に渡すこと。秘密鍵は渡さない。
・今回だと公開鍵を持つサーバ側=リモートリポジトリ
・秘密鍵を持つユーザ=ローカルリポジトリ
SSH鍵の作成と登録の手順は下記の通り
- まず既存のSSH鍵がないか確認
» Checking for existing SSH keys - GitHub Help https://help.github.com/en/github/authenticating-to-github/checking-for-existing-ssh-keys - そのあとSSHキーを作成するのだけど、公式サイトの作成方法は採用せずbashから下記のコマンドで作成。
ssh-keygen -t ed25519
※ed25519は鍵の種類。通常はRSAだがこれよりも強度が上でかつ処理も早いのでed25519を用いることにする。 - パスフレーズを登録。
※パスフレーズは鍵が盗まれてしまったときのために、鍵自体もパスワードで保護するイメージ。 - /home/asymptoter/.sshディレクトリにid_ed25519.pubという名前で鍵が作成される。
- この作成した鍵の中身をコピーし、GitHubに登録。ここでだいぶ苦労した。
この手順は下記の公式サイトを参考にしたが、Mac用だったことにあとから気づいた。もしかしたら丸々不要な手順だったのでは感がある。
» Adding a new SSH key to your GitHub account - GitHub Help https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account
この手順だとWinでSSHキーをクリップボードにコピーできず大変だった。
下記の手順でコピーできた。
・ローカルマシンに適当な名前.txtでファイル作る。(ここでは公開SSH.txtとし、デスクトップに作成した)
・下記のコマンドを実行
cat ~/.ssh/id_ed25519.pub > /mnt/c/Users/ユーザ名/Desktop/公開SSH.txt
※Linuxを普段使っている人からしたら常識的かもしれないが、パス名がWSL特有なので注意が必要。Windows上のCドライブは/mnt/c/にある。
以上でSSH鍵の作成と登録は終わり。
次にプライベートリポジトリにpushする準備を行う。
- GitHubブラウザ上でプライベートリポジトリを作成する。ここではGitTrainingというリポジトリを作成した。
- この作成したリポジトリをローカルリポジトリにcloneする。するとcloneを実行したディレクトリにリモートリポジトリと同じ名前のディレクトリが作られる。
- HTTPSからSSHへのリモートURLの切り替えを行う。ローカルディレクトリごとにリモートURLの設定ができる。今回はGitTrainingディレクトリで設定を行う。
» Changing a remote's URL - GitHub Help https://help.github.com/en/github/using-git/changing-a-remotes-url#switching-remote-urls-from-https-to-ssh - ここから先の手順は記憶があやふや・・・
GitTrainingディレクトリに移動して、「test.txt」を作成して、addして、commitして、pushする。
touch test.txt
git add test.txt
git commit - m"テストコミット"
git push origin master - ブラウザから「test.txt」が確認できればOKだったはず
参考にしました。
» Windows Subsystem for Linux (WSL)を使いやすく設定する - Qiita https://qiita.com/python_walker/items/41894c952ee06b018994