既存の 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