GitHubにて、2022/3/15よりDSAの鍵はサポートされなくなりました。
上記エラーはSSHの鍵があっているなら、MACでは、パーミッションの問題のことが多いと思います。
またBackLog等、GitHubを2箇所、別のアカウントで登録する方法についてもまとめています。
//このコマンドを入力
ssh-keygen -t ed25519 -C "GitHubの登録Email"
//ここでkeyの名前を入力できる
//作成してからあとから名前変更すると、接続できなくなる このkeyの名前で、sshに登録しているため
Enter file in which to save the key (/Users/me/.ssh/id_ecdsa):
//パスワードは省略可能 今回は省略した形式ですべて説明しています。ご注意ください。
Enter passphrase (empty for no passphrase):
//パスワード利用する場合はもう1回
Enter same passphrase again:
$ eval "$(ssh-agent -s)"
> Agent pid 59566 //この番号はプロセスIDなので毎回異なる
~/.ssh/config
ファイルを修正して、キーが ssh-agent に自動的に読み込まれ、パスフレーズがキーチェーンに格納されるようにする必要があるHost github.com
AddKeysToAgent yes # 自動的に読み込まれるように設定する
# UseKeychain yes // パスフレーズを追加する場合のみついかする
IdentityFile ~/.ssh/id_ed25519 //これは作成した秘密鍵の名前に変更する
ssh-add ~/.ssh/id_ed25519 #ssh keyの名前
#パスフレーズを登録した場合
ssh-add --apple-use-keychain ~/.ssh/id_ed25519 # ssh keyの名前
//秘密鍵は400
chmod 400 [秘密鍵の名前]
//確認する
ls -la
//ここがrだけだと400ということ => OK
-r-------- 1 userName staff 525 10 20 10:42 id-rsa_xxxxxxxxx
//configファイルは644
chmod 644 config
configファイルの権限は644にしておく
初回 git で接続するときにgit クライアントがconfigファイルを読み込まないといけないため
Host github //Hostの名前で、接続できるようになる。 例)ssh github 自由な名前をつけることが可能
HostName github.com //これは定数だと思うこと
User git //Userはgitにする 後のbacklogに登録するときはbacklogのuser名にする
AddKeysToAgent yes //key-chainに格納している
IdentityFile ~/.ssh/id_rsa4094_github //作成した秘密鍵
pbcopy < ~/.ssh/id_ed25519.pub
# Copies the contents of the id_ed25519.pub file to your clipboard
//-Tはテスト
$ ssh -T github
//成功するとこのようなメッセージがでる
Hi ! You've successfully authenticated, but Backlog does not provide shell access.
//gitを利用したいフォルダにて
git config remote.origin.url
//このように表示されるはず
git@github.com:[Username]/[RepositoryName].git
ここの@よりあとから:コロンの前までを、上記configファイルのHostに設定すること
通常Backlog のssh URLはこのようになっている
[UserName]@[バックログ.git.backlog.com]:/[someName]/[something].git
Host [バックログ].git.backlog.com
HostName [バックログ].git.backlog.com
User [UserNameを設定する]
//複数githab アカウントを利用するとき必要
IdentitiesOnly yes
IdentityFile ~/.ssh/id_ed25519_somename
IdentitiesOnly yesにしておくこと。
これを設定しないと、すべてのssh鍵を読み込みに行く。 なので意図したアカウントにアクセスできなくなる。 特定のuserでBacklogにアクセスするので、大切
そこのフォルダ内だけは、githubの2つ目のアカウントを利用する想定
–localはそのフォルダ内だけに適用される設定。
git config --local user.email [登録したいEmail] //""ダブルクオーテーションは必要ない
git config --local user.name [2つ目のgitのUserName]
参考にさせていただきました。
公式サイト