【初心者向け】(Windows)Git初期設定とGitHubとのSSH接続
バージョン管理を制して、開発効率を爆上げしよう!Git/GitHub 超入門
こんにちは、皆さん!今日のテーマは、開発者にとって必須のツール、GitとGitHubです。
「バージョン管理?難しそう…」
「GitHub?聞いたことはあるけど、どう使うの?」
そんな初心者の方でも大丈夫!この記事では、GitとGitHubの基本から、日々の開発で役立つ実践的な使い方まで、分かりやすく解説します。
GitとGitHubを使いこなせば、
複数人での開発も怖くない!
過去のバージョンに簡単に戻れる!
コードのバックアップも万全!
などなど、開発効率が爆上がりすること間違いなし。
さあ、あなたもGitとGitHubの世界へ飛び込み、快適な開発ライフを送りましょう!
Gitのインストールと初期設定
-
1.Gitのインストール方法(Windows)
WindowsでのGitのインストール方法は、こちらで解説しています。
インストールができたら、コマンドでインストールできたかを確認します。>git version
git version 2.49.0.windows.1
-
2.Gitの初期設定(ユーザー名、メールアドレス)
次に、Gitに設定するユーザー名とメールアドレスを設定します。
これは、バージョン管理の変更履歴などに記載するユーザー名やメールアドレスになります。まずはユーザー名
git config --global user.name "yogurt"
次に、メールアドレス
git config --global user.name "XXXXX@XXXXXX.XXX"
git config のあとの--globalは、使用しているPCすべてのディレクトリでgitを利用するときの変更履歴に付与されるユーザー名で、--localに変えると、このディレクトリのみで使用されるユーザー名になります。
GitHubアカウントの作成と設定
-
1.GitHubアカウントの作成手順
GoogleでGitHubを検索して、GitHubのページから右上のサインアップをクリックします。
必要な情報を入力して、利用規約を確認し、「続く」をクリックしてサインアップします。
(以下、日本語に翻訳したページです。)
-
2.SSHキーの設定
ローカルのGitからサーバーのGitHubに接続するのに、GitHubアカウントを作成した時に設定したユーザー名とかパスワードが必要そうなものですが、セキュリティや利便性の観点から、SSHの公開かぎ方式が使われます。
ユーザー名とパスワードを利用することで、パスワードの漏洩リスクの軽減されますし、SSHを利用することで通信が暗号化さるため、中間者が通信を傍受して情報を盗み取る「中間者攻撃」を防ぐことができます。SSHキーを設定すると、Gitコマンドを実行するたびにパスワードを入力する必要がなくなりますし、SSHキーは、自動化されたスクリプトやツールとの連携にも適しています。
まず、公開鍵と秘密鍵を作成します。
Windowsの場合、まず、OpenSSHという機能があることを確認します。
「設定」ー「システム」ー「オプション機能」を開きます。(下から2番目)
「OpenSSHクライアント」という機能があれば、OKです。(ない場合は、インストールが必要)
コマンドプロンプトで、以下のコマンドを入力します。
(-Cはコメントですが、メールアドレスを指定しないと、PCのOSユーザ名@マシン名が付与されます。)
>ssh-keygen -t ed25519 -C "(GitHubに登録したメールアドレス)"
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\XXXXX/.ssh/id_ed25519):
鍵を保存するので、Enterを押します。
:(Enter)
Created directory 'C:\Users\XXXXX/.ssh'.
Enter passphrase (empty for no passphrase):
SSHキーを作成する際のパスフレーズは、秘密鍵を保護するための追加のセキュリティ層です。秘密鍵は、あなたのコンピュータからGitHubなどのリモートサーバーへのアクセスを許可する重要なファイルです。パスフレーズは、この秘密鍵を暗号化し、不正アクセスから保護します。
:(好きなパスフレーズ)(Enter)
Enter same passphrase again:
:(好きなパスフレーズもう一度)(Enter)
Your identification has been saved in C:\Users\XXXXXX/.ssh/id_ed25519
Your public key has been saved in C:\Users\XXXXXX/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (指定したメールアドレス)
The key's randomart image is:
……
エクスプローラーでみると、C:¥OSユーザー名¥.sshのフォルダに秘密鍵と公開鍵が作成されていることが確認できます。
[id_ed25519]が秘密鍵で、[id_ed25519.pub]が公開鍵です。
次に、公開鍵の内容をクリップボードに貼り付けて、GitHubに設定していきます。
>clip < C:\Users\xxxxxx\.ssh\id_ed25519.pub
これでクリップボードに貼り付けられました。
GitHubにログインして、右上のアイコンをクリックします。
[Setting]をクリックします。
左のメニューの[SSH and GPG keys]をクリックします。
右上の[New SSH key]をクリックします。
[Title]に好きな名前を入れて、[key]にクリップボードの内容を貼り付けて、下の[Add SSH key]をクリックします。
これで、GitHubに自分の公開鍵を設定できました。
SSH接続を試してみます。
>ssh -T git@github.com
The authenticity of host 'github.com (XX.XX.XX.XX)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
このメッセージは、SSHを使ってgit@github.comに接続しようとした際に、ローカルPCがGitHubのホスト(サーバー)の信頼性を確認できないことを示しています。初めてGitHubにSSH接続する場合、ローカルPCはGitHubのホストの公開鍵を知らないため、信頼性を確認できません。中間者攻撃(Man-in-the-Middle attack)の可能性も考えられます。攻撃者があなたの接続を傍受し、偽のホストに接続させようとしている場合、このようなメッセージが表示されることがあります。
安全な接続のために、フィンガープリントを確認します。
GitHubの公式ドキュメントや信頼できる情報源で公開されているGitHubのホストのフィンガープリントと、表示されたフィンガープリントを比較してもらうことにします。
コマンドプロンプトに表示された、[SHA256:~]をコピペしてEnterを押してください。
(yes/no/[fingerprint])?SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
これは、ローカルPCがgithub.comのホストの公開鍵(ED25519アルゴリズムを使用)を、known_hostsと呼ばれるファイルに永久的に追加したことを示しています。(エクスプローラで鍵と同じ.sshフォルダを見ると、known_hostsファイルが増えているのが確認できます。)known_hostsファイルは、あなたのコンピュータが過去に接続した信頼できるSSHホストの公開鍵を保存する場所です。次回以降、git@github.comに接続する際には、ローカルPCはこのファイルに保存された公開鍵と、接続先のホストから提供される公開鍵を比較し、一致することを確認します。
これにより、中間者攻撃などのセキュリティリスクを軽減できます。
Enter passphrase for key 'C:\Users\XXXXXX/.ssh/id_ed25519':
SSHkey作成時に設定したパスフレーズを入力します。
Hi (GitHubユーザ名)! You've successfully authenticated, but GitHub does not provide shell access.
と表示されたら成功です。
おつかれさまでした。
次回以降・・・
Gitの基本操作
- 1.リポジトリの作成(ローカル/リモート)
- 2.ファイルの追加とコミット
- 3.変更履歴の確認
- 4.ブランチの作成と切り替え
- 5.コンフリクトの解決方法
GitHubの基本操作
- 1.リモートリポジトリへのプッシュとプル
- 2.プルリクエストの作成とマージ
- 3.フォークとクローン
Discussion