Mac シェルコマンド プログラミング

MacとGithubをSSHで連携させる

既存の SSH キーの有無を確認

ひさびさにやったので記録を残します。

2022年8月の情報です。macOS12.4。

Githubの公式ドキュメントを自分用に要約した物です。

GithubとのSSH接続には公開鍵が必要です。

まず、SSH用の公開鍵かあるかどうか確認します。

ls -al ~/.ssh

id_rsa.pub、id_ecdsa.pub、id_ed25519.pubのようなファイルがあればそれを使えます。

公開鍵を作成

なければ作成します。

まず以下のコマンドを入力します。メールアドレスはGitHubで使っているものを指定します。

$ ssh-keygen -t ed25519 -C "your_email@example.com"

以下のようなメッセージが表示されるのでenterを押してデフォルトの場所に保存させます。

Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/kimura/.ssh/id_ed25519):

するとパスフレーズを要求されるので、同じ物を2回入力すると公開鍵ができあがります。

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

暗号鍵をSSH-AGENTに登録

バックグラウンドでssh-agentを開始します。

$ eval "$(ssh-agent -s)"
> Agent pid 59566

~/.ssh/configファイルがあるかどうか調べます。

% open ~/.ssh/config
The file /Users/kimura/.ssh/config does not exist.

ないので作って必要な設定を書き込みます。

$ touch ~/.ssh/config

--- configに以下を書き込み。鍵のファイル名は要確認
Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

SSH 秘密鍵を ssh-agent に追加して、パスフレーズをキーチェーンに保存します。 

$ ssh-add -K ~/.ssh/id_ed25519

なんか警告が出ました。-Kオプションは非推奨になったみたいです。

--apple-use-keychainと打つのが正しいオプションみたいです。

WARNING: The -K and -A flags are deprecated and have been replaced
         by the --apple-use-keychain and --apple-load-keychain
         flags, respectively.  To suppress this warning, set the
         environment variable APPLE_SSH_ADD_BEHAVIOR as described in
         the ssh-add(1) manual page.

まぁでも一応、コマンドは通ったのでさっき設定したパスフレーズを入力します。今回は一回です。

これでカギの作成とSSHへの登録は終了、あとはGitHubへの登録です。

GitHubへSSHキーを登録する

SSH 公開鍵をクリップボードにコピーします。ファイル名は要確認。

なるほどpbcopyとかこういう場面でも使うんですね。

$ pbcopy < ~/.ssh/id_ed25519.pub

ブラウザでGitHubにアクセスします。

マイページのSetting:SSH and GPG keysへ進みます。

New SSH keyボタンをクリック

Titleに分かりやすい名前を付けて、keyにコピーしておいた公開鍵の内容をペーストします。

GitHubのパスワードを要求されるので入力すると登録完了です。

ローカルのリポジトリにGitHubを同期させる

まだローカルリポジトリがない場合はgit initから始めます。

git branch -M mainはデフォルトのブランチ名をmainに変更します。masterはもう使わない感じになったみたいです。すでにmainになってる場合は省略可能です。

echo "# リポジトリのタイトル" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:******** address *********
git push -u origin main

すでにリポジトリがある場合には後半だけで大丈夫です。ここもgit branch -M mainは省略可。

git remote add origin git@github.com:******** address *********
git branch -M main
git push -u origin main

最初はGitHubへのSSHアクセスを許可して本当に良いのかの確認が出ます。yesで進みます。今回は最初エラーが出ましたが、設定は済んだようで、もう一度pushしたら何事もなく同期できました。

GitHubのリポジトリをローカルにクローンする

GitHubリポジトリの「Clone or download 」で「Use SSH」のリンクをコピー

git clone {コピーしたリンク}

GitHubからpull

git pull origin main

-Mac, シェルコマンド, プログラミング