SSH方式でMacのローカルターミナルとGitHubを連携させる手順

SSH方式で連携させるためには、以下の手順を踏みます。

ステップ1: SSHキーの生成

まず、Mac上でSSHキーを生成します。

  1. ターミナルを開く: 「アプリケーション」→「ユーティリティ」→「ターミナル」を開きます。
  2. SSHキーを生成するコマンドを実行: 以下のコマンドをターミナルに入力し、実行します。your_email@example.com の部分は、GitHubに登録しているメールアドレスに置き換えてください。 Bashssh-keygen -t ed25519 -C "your_email@example.com"
    • -t ed25519: 鍵の種類を指定しています。最新のアルゴリズムで、より安全です。
    • -C "your_email@example.com": コメントとしてメールアドレスを付与します。
  3. 保存場所とパスフレーズの設定:
    • 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: 確認のため、もう一度同じパスフレーズを入力します。
    SSHキーが生成されると、公開鍵(id_ed25519.pub)と秘密鍵(id_ed25519)のペアが生成されます。

ステップ2: SSHエージェントの起動とSSHキーの追加

SSHエージェントは、SSHキーをメモリに保持し、パスフレーズの入力を省略できるようにするものです。

  1. SSHエージェントを起動: 以下のコマンドを実行して、SSHエージェントが起動していることを確認し、起動していなければ起動します。 Basheval "$(ssh-agent -s)"
  2. configファイルの作成(初回のみ): もし.sshディレクトリにconfigファイルがない場合、作成します。 Bashtouch ~/.ssh/config
  3. 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のキーチェーンに保存し、次回以降の入力を省略できます。
  4. SSHキーをSSHエージェントに追加: 以下のコマンドで、生成した秘密鍵をSSHエージェントに追加します。パスフレーズを設定した場合は、ここで入力が求められます。 Bashssh-add -K ~/.ssh/id_ed25519 -Kオプションは、macOSのキーチェーンにパスフレーズを保存するよう指示します。

ステップ3: GitHubに公開鍵を登録

生成した公開鍵をGitHubアカウントに登録します。

  1. 公開鍵の内容をコピー: ターミナルで以下のコマンドを実行し、公開鍵(id_ed25519.pub)の内容をコピーします。 Bashcat ~/.ssh/id_ed25519.pub 表示された文字列をすべてコピーします。ssh-ed25519 AAAA... your_email@example.comのような形式です。
  2. GitHubにログイン: ウェブブラウザでGitHubにアクセスし、ログインします。
  3. SSHキーの設定ページへ移動:
    • 画面右上のプロフィールアイコンをクリックし、「Settings」を選択します。
    • 左側のサイドバーで「SSH and GPG keys」を選択します。
  4. 新しいSSHキーを追加:
    • 「New SSH key」または「Add SSH key」ボタンをクリックします。
    • 「Title」には、このキーの識別しやすい名前(例: My Mac など)を入力します。
    • 「Key」のテキストエリアに、先ほどコピーした公開鍵の内容をペーストします。
    • 「Add SSH key」ボタンをクリックします。
    • GitHubのパスワードの入力を求められる場合があります。

ステップ4: 接続テスト

GitHubとの接続が正しく設定されたかを確認します。

  1. ターミナルで接続テスト: 以下のコマンドをターミナルで実行します。 Bashssh -T git@github.com
  2. 接続成功の確認: 初回接続時、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で連携されました。

今後の作業の流れ(例)

  1. 新しいリポジトリを作成する場合:
    • GitHub上で新しいリポジトリを作成します。
    • リポジトリ作成後、表示されるSSH形式のリポジトリURL(例: git@github.com:your_username/your_repository.git)をコピーします。
    • ローカルの作業したいディレクトリに移動し、以下のコマンドでリポジトリをクローンします。 Bashgit clone git@github.com:your_username/your_repository.git
  2. 既存のリポジトリで作業する場合:
    • ローカルに既存のリポジトリがある場合、そのリポジトリのディレクトリに移動します。
    • もしリモートURLがHTTPSになっている場合は、SSHに変更します。 Bashgit remote set-url origin git@github.com:your_username/your_repository.git your_usernameyour_repositoryは実際の情報に置き換えてください)

これで、git pushgit pullなどの操作をパスワードなしで実行できるようになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です