接続をもう一度0から見直す。
2022/3/15よりDSAはサポートされなくなった
現在、Ed25519 アルゴリズムを使わないといけない()
ssh-keygen -t ed25519 -C "your_email@example.com"
GitHub接続注意点
//このコマンドを入力
ssh-keygen -t ed25519 -C "github of your_email@example.com"
//ここで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:
//秘密鍵は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
//階層を1つ上がる
cd ..
//.sshのフォルダの権限変更しておく
chmod 755 .ssh
Host github //Hostの名前で、接続できるようになる。 例)ssh github
HostName github.com //git remote -v のときに git@github.com~~と表示される つまり userはgitで、hostはgithub.comということ
User git //gitHubは必ずUserはgitにする 自分のUserNameにはしないこと!
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa4094_github //作成した秘密鍵
Bad owner or permissions on /Users/xxx/.ssh/config
fatal: Could not read from remote repository.
GitHubは公開鍵認証方式
ssh-agent を起動して秘密鍵を登録しておけば、
ssh
コマンドを実行した際に自動的に秘密鍵を適用して認証処理を行ってくれます。
$ eval "$(ssh-agent -s)"
> Agent pid 59566 //この数字はプロセスなので同じではありません。
$ ssh-add --apple-use-keychain ~/.ssh/[your ssh key ]
これでもエラーが出る場合は下記を参照してください。
調査すると
セキュリティに影響を与える可能性のあるファイル(秘密鍵、構成ファイル、許可された鍵)の一般的な規則は、所有者以外の誰もが書き込み可能であってはならないということです(秘密鍵にアクセスできないようにする必要があります)。
パーミッションを変更する
自分以外の人が書き込めないようにする必要がある。
//パーミッションは700にする
chmod 700 .ssh
//実行権限がないとフォルダに移動すらできない
rwx------@ 15 studiohide staff 480 5 8 22:46 .ssh
=>OK
chmod 600 .config
-rw-------@ 1 studiohide staff 503 5 8 23:16 config
=>OK
//gitを利用したいフォルダにて
git config remote.origin.url
//このように表示されるはず
git@github.com:[Username]/[RepositoryName].git
ここの@よりあとから:コロンの前までを、上記configファイルのHostに設定すること
//-Tはテストオプション
$ ssh -T github
//成功するとこのようなメッセージがでる
Hi ! You've successfully authenticated, but Backlog does not provide shell access.
git config –list –show-origin でPCの設定を見てみる
% git config --list --show-origin
file:/opt/homebrew/etc/gitconfig credential.helper=osxkeychain
file:/Users/xxxx/.gitconfig init.defaultbranch=develop
.gitconfigファイルに設定が記載されている
.gitconfigを確認すると、name とe mailがコメントされていた
コメントアウトするとpushできた
% git push origin develop
Enumerating objects: 1024, done.
Counting objects: 100% (1024/1024), done.
今回はPCが変わったため、.gitconfigファイルの設定を見落としていた。
またssh鍵の生成方法も日本語のサイトをみると間違えていた。時間をロスしてしまった。
当たり前だけど、日本で有名な技術系のサイトといえど、公式サイトを見たほうが良い。
公式サイトはこちら