2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHub SSH ECDSA Ed25519への対応

Last updated at Posted at 2023-03-31

前回記事 GitHubにpushできない Username for 'https://github.com': って訊かれる! も参考にして、GitHubのSSH界隈の事情に変更があったので、アプデした情報に基づいて記載します。

経緯

2023年3月23日に突如、We updated our RSA SSH host key なんてのが発表されました。GitHubでSSHの漏洩があったかららしいんですが、ツイ民の間では「急にpushできなくなった」として話題になりました。

これへの対応も合わせてGitHubの基本のおさらいしましょう。

対応

まあ、この記事しか読まない方もいるので、初手から始めていきます。なお、動作環境はUbuntu 22.04LTSです。なお、上述のSSH界隈の変更でもWindowsのdesktopアプリケーション GitHub Desktop | Simple collaboration from your desktop からの使用には問題なかったようです。

cd 
mkdir gitFolder  //自分の環境のフォルダ名に以下読みかえてね!
git init

でわかりやすい場所にGitHub専用のフォルダを作ってから、

git config --global user.name "YohYasushi" //もちろん自分のユーザー名に以下読みかえてね!
git config --global user.email "(あなたのめるあど)@gmail.com"

を行ってください。そして、

git config --list

を行って、設定がなされたか確認をしてください。

user.name=YohYasushi
user.email=(あなたのめるあど)@gmail.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

となっていたらOKです。

We updated our RSA SSH host keyによると、SSHの公開鍵が、ECDSAEd2251だった方は問題なかったみたいです。

今回はEd25519で作成したいと思います ( ECDSAとEd25519の違い?知りません。 )。

ssh-keygen -t Ed25519 -C "(あなたのめるあど)@gmail.com"

を行ってキーを作成してから(作成場所はデフォルトとします)、

cat ~/.ssh/id_ed25519.pub

全部コピーして(アルファベットのホニャホニャの部分じゃなくて全部です)、

https://github.com/YohYasushi/Renshu/settings/keysに移動して、 「Add deploy key」 をクリックしてから、コピーしたものをペーストして保存してください( スクショは省きます )。

でもまだ完了ではありません!!

いちおうここで、

ssh -T git@github.com

を行って、

Are you sure you want to continue connecting (yes/no/[fingerprint])?

をyesにし、該当するGmailのパスワードも入力し、

Hi YohYasushi! You've successfully authenticated, but GitHub does not provide shell access.

を得てSSH認証が通ったか確認をしておいてください。

ですが、ここから更に確認すべきことがあります。

cd ~/GitFolder/Renshu/.git
ls -al

を行って隠しファイルとフォルダまで表示させた中の、

-rw-rw-r--  1 yohyasushi yohyasushi  213  4月  1 05:00 config

の設定変更する必要があります。

cat config

を行うと↓のように表示されるはずですが、

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = https://github.com/YohYasushi/Renshu.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
	remote = origin
	merge = refs/heads/main

この中の、

[remote "origin"]
	url = https://github.com/YohYasushi/Renshu.git
	fetch = +refs/heads/*:refs/remotes/origin/*

を、

[remote "origin"]
	url = git@github.com:YohYasushi/Renshu.git 

に変更してやる必要があります。

この最後に書いた処理をしないとpushしても、

Username for 'https://github.com':
Password for 'https://YohYasushi@github.com':

ここでYohYasushiを入力し、パスワードの入力しても、

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/YohYasushi/Renshu.git/'

ってことになります。これは、前回記事でも記載したとおりですね。

これで、取り急ぎなんかファイルと作ってから、

git add .
git commit -m "1st"
git push -u origin main

としても行けるはずです。

だめだった方がいたら、教えてください!

まとめ

これは噂ですが、GitHubへのpushはSSH認証でされている方がほとんどのはずですが、実はオフィシャルには、「https認証でしてくれ!!」、らしいです(真偽は定かではありませんが)。しかしながらconfigが初期設定でhttpsになっていることを考えると、あながちその噂も間違いではないのかもしれません。

あと下記に参考文献とか書きましたが、私の知る範囲では隠しフォルダのconfigをいじれって書かれている文献や書籍をみたことがありません。この点についてもより詳しい方からの情報を求めたいです。

以上、長くなりましたら備忘も兼ねて記載しました。役立ちましたら幸いです。

参考文献など

Git入門コマンドライン演習80

GitHub実践入門

We updated our RSA SSH host key

GitHubにpushできない Username for 'https://github.com': って訊かれる!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?