1
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?

GitHubでSSH認証を実装する方法

Posted at

事の発端...

git push時に403エラーが発生

久しぶりにプッシュをしようとした所、「The requested URL returned error: 403」が表示されました。どうやらGitHubの認証が上手くいっていなかったらしいです。
色々な記事を読んでみて、下記のコマンドで資格情報の確認をしてみました。

$ git config credential.helper

すると、MacOSを使っていますので

osxkeychain

と表示されました。下のキーチェーンアクセスから
Screenshot 2025-05-02 at 6.09.26.jpg
github.comのパスワード情報を検索しても、見つかりません。どうやら別の所に問題があるのかもしれません。Screenshot 2025-05-02 at 6.11.56.jpg

GitHubのPersonal access tokensの検証

GitHubの設定からDeveloperSettingさらにPersonal access tokensの Fine-grained tokensで生成したものを認証に使ってみましたが、結果的にこれも上手くいきませんでした。
mosaic_20250502062513.png
アクセストークンは最初の一回しか表示されないので、画面をスクショしないといけないことに注意、またアカウント名・パスワードを聞かれるタイミングでパスワードの代わりに発行されたトークンを貼って認証しないといけないという何とも分かりずらい仕組み...
こんなに長いトークン値をパスワードとして使うのは使い勝手が悪い。しかも認証もうまくできなかったし...

GitHub公式ブログの確認

下の記事によると2021年8月13日以降、Git操作を認証する際はSSH鍵を使うことを推奨しますと書いてありました。
Git操作のトークン認証要件
SSH接続が有効そうなので、頑張って調べて取り入れてみました。公開鍵認証が実際にどのよう使われているのか手を動かして理解できました。

SSH認証の手順

公開鍵・秘密鍵の作成

GitHubアカウント用の公開鍵・秘密鍵を生成します。ターミナルを起動し、以下のコマンドを実行します。

#.sshディレクトリに移動する
$ cd ~/.ssh
# 公開鍵と秘密鍵のペアを生成する
$ ssh-keygen -t rsa

パスフレーズや鍵の名前など3つの質問が聞かれますが、ここでは簡易的に一つのアカウント認証をするとして、Enterキー3回押してスキップしてOKです。
Screenshot 2025-05-02 at 7.08.04.jpg
秘密鍵 id_rsa と公開鍵 id_rsa.pub が生成されました。次のステップでこの公開鍵をGitHubに登録します。

公開鍵をGitHubに登録する

GitHubアカウント上で新規のSSH鍵を登録する。下の新しいSSH keyを選択して新たに作成します。
mosaic_20250502065411.png

タイトルは仕事用・私用のアカウントなど名前をつけましょう。
Screenshot 2025-05-02 at 7.11.14.jpg

鍵の中身のクリップボードへのコピーは、下のコマンドでいけます。

$ pbcopy < ~/.ssh/id_rsa.pub

Key内にペーストすると末尾に自身のメールアドレスの情報も付いてくるのでセキュリティ上削除しておきましょう。

configファイルにアカウント情報を記入

configファイルを作成します。

vim ~/.ssh/config

以下の内容を記入します。複数のアカウントを記入できますが、今回は簡単に一つのアカウントを使用するとします。

#メインアカウント
Host github #任意のホスト名
  HostName github.com
  IdentityFile ~/.ssh/id_rsa #メインアカウントの鍵のファイル
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

GitHubとの接続確認

先ほどファイルに記入したホスト名を使用します。
ssh -T [Host]で接続できます。

$ ssh -T github

下記メッセージが表示されれば成功です。
Hi [メインアカウントのユーザー名]! You've successfully authenticated, but GitHub does not provide shell access.

今回は一つのGitHubアカウントの認証のトラブルシューティングですが、一つのPCで仕事用と私用のアカウントを切り替えたいときはまた気をつけておかないといけない点がありますので、別記事で解説していきたいと思います!

1
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
1
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?