UniMul | Engineers' Blog

技術に関する情報を発信していきます。

【git】SSH-Keyを作成する手順

f:id:UniMul:20200602082623p:plain

■概要

sshKeyを作成する手順を説明します。
今回はGitHubを使用します。

■SSH-Keyを作成する手順

1. SSH-Keyを既に持っているか確認する

SSHクライアントが利用可能か確認します。

ssh -v

インストールされていれば、このように表示されます。

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]

インストールされていなければ、下記を参照して再インストールします。
https://tech-blog.unimul.com/entry/setup-homebrew-gittech-blog.unimul.com

自分の ~/.sshディレクトリの内容を表示してみます。

ls -a ~/.ssh

SSHを使用したことがなければ、次のような表示になります。

ls: /Users/[user_name]/.ssh: No such file or directory

※ここでは、仮に[user_name]としています

既にSSH-Keyを持っている場合は、このようになります。

.        ..      id_rsa      id_rsa.pub

2. SSH-Keyを作成する

SSH-Keyを作成します。

ssh-keygen

特にオプション指定しないで作成すると2048bitのRSA鍵が生成されます。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/[user_name]/.ssh/id_rsa): 

SSH-Keyの保存先を聞かれているので、表示されている場所でよければ[Enter]キーを押します。
※ここでも、仮に[user_name]としています

Created directory '/Users/[user_name]/.ssh'.
Enter passphrase (empty for no passphrase): 

パスフレーズを入力します。パスフレーズを設定しておくと秘密鍵自体も暗号化した形で保存されるので安心です。

Enter same passphrase again:

もう一度同じパスフレーズを入力します。
これでSSH-Keyが作成されました。

3. ssh-agentに秘密鍵を登録する

鍵が登録されている状態にあるか確認します。

ssh-add -l

「Could not open a connection to your authentication agent.」と表示された場合は、ssh-agentを起動する必要があります。
「The agent has no identities.」と表示された場合はssh-agentに秘密鍵を登録する必要があります。

【ssh-agentを起動する必要がある場合】

eval `ssh-agent`

「Agent pid 777」と表示された場合は再度、鍵が登録されている状態にあるか確認します。

【ssh-agentを起動する必要がある場合】

ssh-add -K ~/.ssh/id_rsa

「Identity added: 」と表示されれば、完了になります。

  1. GitHubに公開鍵を登録する クリップボードに公開鍵をコピーします。
pbcopy < ~/.ssh/id_rsa.pub

GitHubの設定に行き、[new Key]で公開鍵を登録します。
これでGit周りの環境設定は完了です。

■最後に

ここではGitHubを例に挙げていますが、GitLabなど他でも同様な手順で設定すれば問題ないかと思います。

また、今回はMacで行った操作になります。
Windowsは通常ではLinuxコマンドが扱えず、独自のコマンドがあるかと思うので変換して参考にしてください。
Git Bash使えば同じ手順で可能かもしれないですが、動作確認していません。
やっぱり、MacはデフォルトでLinuxコマンドが扱えるので楽ですね…