GitHubにSSH接続して、pushできるようにするための接続方法について書いています。
Macを使用して、ssh-keygenコマンドでキーを作成した後にGitHubに登録してみました。
1. ssh-keygenコマンドを使用して、キーを作成する
2. GitHubを開いて、設定画面から作成したキーを登録する
3. リポジトリをSSH接続文字列からクローンして、プッシュして確認する
アクセストークンを使用してHTTPS接続する方法は下記になります。
今回はMacを使用して検証していますが、Windowsでも同様にしてSSHの接続設定を行うことが可能です。
GitHubのSSH設定をする
GitHubのリポジトリにSSH接続を設定して、pushできるように設定していきます。
最初にssh-keygenコマンドを使用して、キーを作成します。
キーを作成した後に、作成したキーをGitHubにブラウザからアクセスして設定します。
使用するキーを作成する
ssh-keygenコマンドを使用して、キーを作成します。
$ ssh-keygen -t rsa
実行すると、下記のようになります。
$ ssh-keygen -t rsa
Enter file in which to save the key (/Users/userName/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/userName/.ssh/id_rsa.
Your public key has been saved in /Users/userName/.ssh/id_rsa.pub.
# --- 省略 ---
「Enter file in which to save the key」は保存されるファイルパスを聞かれています。
そのままEnterキーを押すと、表示されている/Users/userName/.ssh
ディレクトリ配下にid_rsa
ファイルが作成されます。
今回はそのままEnterを押して、ファイルを作成してみました。
「Enter passphrase」ではパスワードを聞かれます。今回は入力せずにEnterを押します。
「Enter same passphrase again」では入力したパスワードの確認で聞かれます。こちらも今回は入力せずにEnterを押してください。
そうすると、下記のような表示になって/Users/userName/.ssh/
配下にid_rsa
とid_rsa.pub
というファイルが作成されます。
% ssh-keygen -t rsa
Generating public/private rsa key pair.
#-----省略-----
The key fingerprint is:
SHA256:pybcZW6xJ3tUobh5XdAkU123Jkawfojoj XXXXX.local
The key's randomart image is:
+---[RSA 3072]----+
| ..o+o|
| . .o+=|
| #-----省略-----# |
| o . +. + .|
| .. ooo |
+----[SHA256]-----+
次は作成したキーの内容をGitHubに登録します。
作成した公開鍵をGitHubに設定する
最初に作成されたid_rsa.pub
のファイルの中身をコピーします。
下記のコマンドでファイルの中身が表示されるので、コピーしておきます。
$ cat /Users/userName/.ssh/id_rsa.pub
GitHubにアクセスして、右上のアイコンから「Settings」をクリックします。
「Settings」を選んだ後に「SSH and GPG keys」を選択します。
その後に「New SSH Key」をクリックします。
Titleにわかりやすい適当なキー名を入力して、Keyにコピーしておいたid_rsa.pub
ファイルの内容を入力しておきます。
入力した後に、「Add SSH Key」をクリックして登録します。
そうすると、下記のように登録されます。
これで、接続する準備完了です。
リポジトリにSSH接続してみる
使用するリポジトリを開いて、下記のように「Code」をクリックしてからアイコンを選択し、接続するための文字列をコピーします。
ターミナルを開いて、下記のようにgit cloneコマンドを使用して、リポジトリからソースコードをクローンします。
$ git clone git@github.com:yasuaki0206/test-repository.git
実行すると、下記のようにコードがダウンロードできたことが確認できました。
$ git clone git@github.com:yasuaki0206/test-repository.git
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 17 (delta 4), reused 11 (delta 1), pack-reused 0
Receiving objects: 100% (17/17), done.
Resolving deltas: 100% (4/4), done.
適当なコミットを作成した後に、git pushしてみます。
ファイルを適当に作成して、下記のようにコミットしました。
$ git commit -m "add new file"
[main 8b08b59] add new file
1 file changed, 1 insertion(+)
create mode 100644 test2.js
その後にmainブランチに向けてプッシュしてみました。
SSH接続設定が終わっているので、下記のようにプッシュが完了しました!
$ git push origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 293 bytes | 293.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:yasuaki0206/test-repository.git
aac7a53..8b08b59 main -> main
コメント