SSH方式で連携させるためには、以下の手順を踏みます。
ステップ1: SSHキーの生成
まず、Mac上でSSHキーを生成します。
- ターミナルを開く: 「アプリケーション」→「ユーティリティ」→「ターミナル」を開きます。
-
SSHキーを生成するコマンドを実行:
以下のコマンドをターミナルに入力し、実行します。
your_email@example.com
の部分は、GitHubに登録しているメールアドレスに置き換えてください。 Bashssh-keygen -t ed25519 -C "your_email@example.com"
-t ed25519
: 鍵の種類を指定しています。最新のアルゴリズムで、より安全です。-C "your_email@example.com"
: コメントとしてメールアドレスを付与します。
-
保存場所とパスフレーズの設定:
Enter file in which to save the key (/Users/your_username/.ssh/id_ed25519):
これは、SSHキーを保存する場所を聞いています。特に変更がなければ、そのままEnterキーを押してください。デフォルトの場所が推奨されます。Enter passphrase (empty for no passphrase):
パスフレーズ(パスワードのようなもの)を設定するかどうかを聞いています。セキュリティ向上のため、パスフレーズを設定することをお勧めします。入力しても画面には表示されませんが、正しく入力してください。Enter same passphrase again:
確認のため、もう一度同じパスフレーズを入力します。
id_ed25519.pub
)と秘密鍵(id_ed25519
)のペアが生成されます。
ステップ2: SSHエージェントの起動とSSHキーの追加
SSHエージェントは、SSHキーをメモリに保持し、パスフレーズの入力を省略できるようにするものです。
-
SSHエージェントを起動:
以下のコマンドを実行して、SSHエージェントが起動していることを確認し、起動していなければ起動します。
Bash
eval "$(ssh-agent -s)"
-
configファイルの作成(初回のみ):
もし
.ssh
ディレクトリにconfig
ファイルがない場合、作成します。 Bashtouch ~/.ssh/config
-
configファイルの設定:
~/.ssh/config
ファイルに以下の設定を追加します。これにより、SSHキーが自動的にSSHエージェントに追加されるようになります。 BashHost * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519
この設定をファイルに追記するには、テキストエディタを使うか、以下のコマンドで直接追記できます。 Bashecho "Host *" >> ~/.ssh/config echo " AddKeysToAgent yes" >> ~/.ssh/config echo " UseKeychain yes" >> ~/.ssh/config echo " IdentityFile ~/.ssh/id_ed25519" >> ~/.ssh/config
UseKeychain yes
を設定することで、パスフレーズをmacOSのキーチェーンに保存し、次回以降の入力を省略できます。 -
SSHキーをSSHエージェントに追加:
以下のコマンドで、生成した秘密鍵をSSHエージェントに追加します。パスフレーズを設定した場合は、ここで入力が求められます。
Bash
ssh-add -K ~/.ssh/id_ed25519
-K
オプションは、macOSのキーチェーンにパスフレーズを保存するよう指示します。
ステップ3: GitHubに公開鍵を登録
生成した公開鍵をGitHubアカウントに登録します。
-
公開鍵の内容をコピー:
ターミナルで以下のコマンドを実行し、公開鍵(
id_ed25519.pub
)の内容をコピーします。 Bashcat ~/.ssh/id_ed25519.pub
表示された文字列をすべてコピーします。ssh-ed25519 AAAA... your_email@example.com
のような形式です。 - GitHubにログイン: ウェブブラウザでGitHubにアクセスし、ログインします。
-
SSHキーの設定ページへ移動:
- 画面右上のプロフィールアイコンをクリックし、「Settings」を選択します。
- 左側のサイドバーで「SSH and GPG keys」を選択します。
-
新しいSSHキーを追加:
- 「New SSH key」または「Add SSH key」ボタンをクリックします。
- 「Title」には、このキーの識別しやすい名前(例:
My Mac
など)を入力します。 - 「Key」のテキストエリアに、先ほどコピーした公開鍵の内容をペーストします。
- 「Add SSH key」ボタンをクリックします。
- GitHubのパスワードの入力を求められる場合があります。
ステップ4: 接続テスト
GitHubとの接続が正しく設定されたかを確認します。
-
ターミナルで接続テスト:
以下のコマンドをターミナルで実行します。
Bash
ssh -T git@github.com
-
接続成功の確認:
初回接続時、
The authenticity of host 'github.com (IPアドレス)' can't be established.
のようなメッセージが表示されることがあります。これはGitHubのフィンガープリントを確認するもので、yes
と入力してEnterを押します。 その後、以下のようなメッセージが表示されれば成功です。Hi your_username! You've successfully authenticated, but GitHub does not provide shell access.
your_username
の部分は、あなたのGitHubユーザー名に置き換わっています。
これで連携は完了!
これで、MacのローカルターミナルとGitHubがSSHで連携されました。
今後の作業の流れ(例)
-
新しいリポジトリを作成する場合:
- GitHub上で新しいリポジトリを作成します。
- リポジトリ作成後、表示されるSSH形式のリポジトリURL(例:
git@github.com:your_username/your_repository.git
)をコピーします。 - ローカルの作業したいディレクトリに移動し、以下のコマンドでリポジトリをクローンします。
Bash
git clone git@github.com:your_username/your_repository.git
-
既存のリポジトリで作業する場合:
- ローカルに既存のリポジトリがある場合、そのリポジトリのディレクトリに移動します。
- もしリモートURLがHTTPSになっている場合は、SSHに変更します。
Bash
git remote set-url origin git@github.com:your_username/your_repository.git
(your_username
とyour_repository
は実際の情報に置き換えてください)
これで、git push
やgit pull
などの操作をパスワードなしで実行できるようになります。