SSH SETUP KIT

手順書のコマンドを、あなたの値に置き換えて出します。黄色が置き換わった値、赤がまだ入力していない値です。

px

完了 0 / 20

プロファイル

1 件

入力値のセットに名前を付けて切り替えられます。ファイルに書き出せば、 別の PC でも同じ設定を使えます。

アカウント 2 件

基本設定

macOS

専用設定

自動
自動
自動
自動

基本設定

macOS

専用設定

自動
自動
自動
自動

入力した値はこのブラウザの中だけに保存され、どこにも送信されません。 パスフレーズや鍵そのものを入力する欄はありません(鍵の作成時に ターミナルが直接聞きます)。

9 工程 / 12 ブロック

SSHキーを作成する

ed25519 形式の鍵ペアを作ります。-C はどの鍵かを見分けるためのコメント、-f は保存先のファイル名です。実行するとパスフレーズを2回聞かれます。

ssh-keygen -t ed25519 -C "personal-github-macos" -f ~/.ssh/id_ed25519_github_macos_personal

鍵ができたか確認する

秘密鍵(拡張子なし)と公開鍵(.pub)の2つが並んでいれば成功です。

ls -la ~/.ssh/id_ed25519_github_macos_personal*

~/.ssh/config に接続設定を書く

どの接続先でどの鍵を使うかを alias(Host 名)で指定します。以下の内容を ~/.ssh/config に貼り付けてください。

全アカウント共通
Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github_macos_personal
  IdentitiesOnly yes
  AddKeysToAgent yes
  UseKeychain yes

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github_macos_work
  IdentitiesOnly yes
  AddKeysToAgent yes
  UseKeychain yes
  • IdentitiesOnly yes を付けないと、手元にある別の鍵が先に試されて認証に失敗することがあります。

パスフレーズを Keychain に登録する

一度登録しておくと、以降は毎回パスフレーズを打たずに済みます。実行時にパスフレーズを聞かれます。

/usr/bin/ssh-add --apple-use-keychain ~/.ssh/id_ed25519_github_macos_personal

agent に登録された鍵を確認する

登録した鍵がすべて一覧に出ていれば成功です。

全アカウント共通
/usr/bin/ssh-add -l

~/.zshrc に自動登録を追記する

ターミナルを開くたびに Keychain から鍵を読み込ませます。以下を ~/.zshrc の末尾に追記してください。

全アカウント共通
# GitHub SSH keys
/usr/bin/ssh-add --apple-use-keychain \
  ~/.ssh/id_ed25519_github_macos_personal \
  ~/.ssh/id_ed25519_github_macos_work \
  2>/dev/null

~/.zshrc を反映して確認する

追記した内容を現在のターミナルに反映し、正しく書けているかを確認します。

全アカウント共通
source ~/.zshrc
grep -n "ssh-add" ~/.zshrc

公開鍵を表示して GitHub に登録する

表示された1行をまるごとコピーし、GitHub の Settings → SSH and GPG keys に貼り付けます。公開鍵(.pub)は人に見せてよい側の鍵です。

cat ~/.ssh/id_ed25519_github_macos_personal.pub

GitHub への接続を確認する

1行目で認証、2行目で実際に使われている鍵、3行目で鍵を直接指定した場合の結果を確認します。Hi <ユーザー名>! と返れば成功です。

ssh -T git@github-personal
ssh -G github-personal | grep -i identityfile
ssh -T -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519_github_macos_personal git@github.com

Sourcetree で使う SSH URL

github.com ではなく alias を書くのがポイントです。個人リポジトリなら1行目、組織リポジトリなら2行目を使います。

git@github-personal:YOUR_GITHUB_USER/YOUR_REPOSITORY.git
git@github-personal:YOUR_GITHUB_ORG/YOUR_REPOSITORY.git

未入力: GitHub ユーザー名 / リポジトリ名 / GitHub 組織名左の入力欄を埋めると置き換わります。

既存リポジトリの remote を alias 形式に変える

すでに clone 済みのリポジトリは、接続先 URL を alias 形式に差し替えます。

git remote set-url origin git@github-personal:YOUR_GITHUB_USER/YOUR_REPOSITORY.git
git remote -v

未入力: GitHub ユーザー名 / リポジトリ名左の入力欄を埋めると置き換わります。

(うまくいかないとき)agent に鍵を登録し直す

ssh-add -l に鍵が出てこない、認証を求められ続ける、といった場合はこれを実行します。

/usr/bin/ssh-add --apple-use-keychain ~/.ssh/id_ed25519_github_macos_personal