ブログ名未定

開発環境はWSL(Ubuntu)です。

プライベート(リモート)リポジトリへPushするようにした手順メモ

プライベートリポジトリへpushできなかった。
Gitの設定(SSH鍵の作成と登録)ができてなかったから。

 

SHH鍵についてのざっくりとした理解は下記の通り
・サーバ側で公開鍵、ユーザ側で秘密鍵を持つ。
・複数人で1つのリモートリポジトリを共有する場合は、公開鍵を相手に渡すこと。秘密鍵は渡さない。
・今回だと公開鍵を持つサーバ側=リモートリポジトリ
秘密鍵を持つユーザ=ローカルリポジトリ

SSH鍵の作成と登録の手順は下記の通り

  1. まず既存のSSH鍵がないか確認
    » Checking for existing SSH keys - GitHub Help https://help.github.com/en/github/authenticating-to-github/checking-for-existing-ssh-keys
  2. そのあとSSHキーを作成するのだけど、公式サイトの作成方法は採用せずbashから下記のコマンドで作成。
    ssh-keygen -t ed25519
    ※ed25519は鍵の種類。通常はRSAだがこれよりも強度が上でかつ処理も早いのでed25519を用いることにする。
  3. パスフレーズを登録。
    パスフレーズは鍵が盗まれてしまったときのために、鍵自体もパスワードで保護するイメージ。
  4. /home/asymptoter/.sshディレクトリにid_ed25519.pubという名前で鍵が作成される。

    f:id:asymptoter:20200211205454p:plain

  5. この作成した鍵の中身をコピーし、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する準備を行う。

  1. GitHubブラウザ上でプライベートリポジトリを作成する。ここではGitTrainingというリポジトリを作成した。
  2. この作成したリポジトリをローカルリポジトリにcloneする。するとcloneを実行したディレクトリにリモートリポジトリと同じ名前のディレクトリが作られる。

    f:id:asymptoter:20200211212621p:plain

  3. 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
  4. ここから先の手順は記憶があやふや・・・
    GitTrainingディレクトリに移動して、「test.txt」を作成して、addして、commitして、pushする。
    touch test.txt
    git add test.txt
    git commit - m"テストコミット"
    git push origin master
  5. ブラウザから「test.txt」が確認できればOKだったはず

参考にしました。
» Windows Subsystem for Linux (WSL)を使いやすく設定する - Qiita https://qiita.com/python_walker/items/41894c952ee06b018994