GitBashでGithubのリポジトリをクローンしよう
今回はWindows環境においてGitBashを使ってSSH通信をして実際にプライベートリポジトリをクローンするところまでのやり方をまとめてみようと思います♪
前提
環境
筆者の環境は以下となります。
- GitBash導入済み
- Windows10
- 対象のGithubリポジトリはプライベート
秘密鍵・公開鍵の生成
まずは初めてGithubに通信するマシンなので秘密鍵・公開鍵の生成を行います。
以下のコマンドを実行してカギを生成しましょう。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/{任意のファイル名}
対話式操作後に以下のようなログが出力されれば生成完了です。
Generating public/private rsa key pair.
Created directory '/c/Users/{ユーザー名}/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/{ユーザー名}/.ssh/{秘密鍵名}
Your public key has been saved in /c/Users/{ユーザー名}/.ssh/{公開鍵鍵名}
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXX {ユーザー名}@{マシン名}
The key's randomart image is:
+---[RSA 4096]----+
| ..AoB.. BC+|
| . o / E E.B*|
| . B Y = @.+|
| . + . + e.|
| . T . .|
| . o . |
| . . |
| |
| |
+----[SHA256]-----+
configファイルの作成
次にSSHに関するconfigファイルを生成します。
~/.ssh配下にtouch configでconfigファイルを生成し、お好きなエディタで開いて以下のように記述して保存してください。
Host github
HostName github.com
IdentityFile ~/.ssh/{秘密鍵}
User git
ssh-agentに秘密鍵を登録
Windowsマシンの場合はssh-agentに秘密鍵を登録する必要があるので以下のコマンドを実行して下さい。
ssh-agent bash #①
ssh-add ~/.ssh/{秘密鍵} #②
以下のような出力がされればssh-agentへの秘密鍵の登録が完了です。
Identity added: /c/Users/{ユーザー}/.ssh/{秘密鍵} ({ユーザー名}@{マシン名})
念のためssh-add -lで確認してみましょう。
4096 SHA256:XXXXXXX/Z/YYYYY {ユーザー名}@{マシン名} (RSA)
Githubに公開鍵を登録
次は先ほど作成した公開鍵をGithubに設定しましょう。
Githubにログインし、右上のアカウントメニューのSettings→SSH and GPG keysと進みましょう。
右上のNew SSH keyをクリックし任意のタイトルをつけて公開鍵の内容をコピペしてAdd SSH keyボタンをクリックします。
コピーはclip < ~/.ssh/{公開鍵}で出来ます。
これでGithubへの公開鍵の設定は完了です!
SSH接続の確認
それではいよいよSSH通信が出来るか試してみましょう・・・!ドキドキ
ssh -T git@github.comを実行してみると・・・?
The authenticity of host 'github.com (20.27.177.113)' can't be established.
ECDSA key fingerprint is SHA256:XXX/YYY/ZZZ.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,20.27.177.113' (ECDSA) to the list of known hosts.
Hi {Githubユーザー名}! You've successfully authenticated, but GitHub does not provide shell access.
おぉ!
無事に接続できましたね♪
Githubからのクローンも可能に
これでPrivateリポジトリもクローン出来るようになりました♪
Cloning into '{リポジトリ名}'...
remote: Enumerating objects: 17460, done.
remote: Counting objects: 100% (291/291), done.
remote: Compressing objects: 100% (149/149), done.
remote: Total 17460 (delta 174), reused 218 (delta 120), pack-reused 17169
Receiving objects: 100% (17460/17460), 17.64 MiB | 661.00 KiB/s, done.
Resolving deltas: 100% (9289/9289), done.
Updating files: 100% (1240/1240), done.
完璧や!ニチャア
終わりに
以上のようにやる事さえ分かっていれば手こずることなく初期設定からクローンまで行うことが出来ました。
Windows環境にてSSH接続の部分で困っている方がいましたらこちらの記事を参考にしていただければなと思います♪