前回からの続き、ローカルファイルをGithubにpush
前回はGitが何であるかの説明から、インストール、Gitコマンドの使い方などを書いたんじゃが、それをGithub上にアップする手順じゃ。
まず、今までの古いパスワード方式ではなく、SSHという方式で自分のパソコンとサーバーを接続するんじゃ。
この方式は、公開キーと秘密キーというふたつの鍵ペアを発行し、公開キーを外部のサーバーなどに置いておき、自分の内部の秘密キーと合わさった時に繋がるんじゃ。
公開キーが鍵、秘密キーが鍵穴みたいな感じで、2つがピッタリと合うと繋がるというイメージで、少しエロいの。
公開キーは鍵が複製できて、基本鍵穴は一つだけじゃ。
SSHキーを発行する
SSHキーの発行は、コマンドラインから
ssh-keygen -t rsa -b 4096 -C "youremailadd@namahage.com" // -t:type -b:byte -C:comment ラベル代わりに使ってる
で、幾つかの質問にそのままエンターを入れ続けると、下記のような表示が現れ、キーが生成された事がわかる。
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_ed25519
Your public key has been saved in /home/sammy/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:EGx5HEXz7EqKigIxHHWKpCZItSj1Dy9Dqc5cYae+1zc youremailadd@namahage.com
The key's randomart image is:
+--[ED25519 256]--+
| o+o o.o.++ |
|=oo.+.+.o + |
|*+.oB.o. o |
|*. + B . . |
| o. = o S . . |
|.+ o o . o . |
|. + . ... . |
|. . o. . E |
| .. o. . . |
+----[SHA256]-----+
で、次にこのキーペアを自分のパソコンに登録する。 下記コードを打つと、SSHエージェントが立ち上がる。
eval "$(ssh-agent -s)"
Agent pid 20906
で、秘密キーを自分のOSに登録
ssh-add -K ~/.ssh/id_ras
で、Identify addedと出ると、あなたの秘密キーがパソコンに登録された事になる。
次にgithubのページに行こう。
アカウントのない人は、無料なので、作ると良いよ。
アカウントにログインできたら、次にリモートrepositryを作る。メニュー右上の+マーク、createから。
Repositry nameは適当に、自分のサイトやアプリに沿った名前をつけよう。publicで、下のファイルは両方noneでオーケー。
今回はすでにあるローカルリポジトリからデータを持ってくるので、真ん中のやつ。
git remote add origin https://github.com/yourgitaddress/your_project_name.git
git branch -M main
このコマンドをコマンドラインに入力する。この意味は、リモートリポジトリのアドレスを登録。電話帳みたいなもの。
次にさっき作った公開キーの登録。右上メニュープロフイメージ横の▼からsettings -> この画面に。
タイトルは適当な好きな名前で。
で、公開キーの取得。 コマンドラインに戻り、下記コマンドをうつ。
cat ~/.ssh/id_rsa.pub
そうすると、ssh-rsaから始める長い文字列が出てくるので、それをコピー! githubにペースト!
これでgithubにあなたの公開キーが登録されました。で、ようやくパソコンから繋がる状態に。
繋がるかテストしてみよう。
ssh -T git@github.com
Hi Namahage! You've successfully authenticated, but GitHub does not provide shell access.
繋がったよ、お母さん!
いよいよ、最初のpush
/myProject/$ git push -u origin main
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 5.68 KiB | 727.00 KiB/s, done.
Total 7 (delta 0), reused 0 (delta 0)
To https://github.com/namahage/yourProject.git
* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
githubにデータが無事にアップ。githubサイトにログインして、さっき作ったレポジトリを見てみよう。
pushされたデータが入ってるはず。
次回からは git push だけでオーケー。
下記はリファレンス。
キーの保存場所
下記コマンドを入れると、
ls -a -l ~/.ssh
SSHキーの場所が表示される
drwx------ 2 ubuntu 4096 Jun 14 23:31 .
drwxr-xr-x 29 ubuntu 4096 Jun 21 16:37 ..
-rw------- 1 ubuntu 3401 Jun 14 22:38 id_rsa //秘密キー
-rw-r--r-- 1 ubuntu 757 Jun 14 22:38 id_rsa.pub //公開キー
バイト帰りでばぁーっと書いて疲れたわい。
儂は寝るのじゃ。