🗂️

Ubuntu⇔GitHubをHTTPS接続に変更する(備忘)

に公開

はじめに

これまでSSH接続していたが、ある日突然git pushができなくなってしまったため(原因不明...)、HTTPS接続に切り替えた。

configファイルの修正

Ubuntuの対象リポジトリにある.git > configファイルをエクスプローラーからメモ帳で開く。
(エクスプローラーではなく、Ubuntuターミナルから直接nanoエディタ等で編集しても良い)

GitHubから対象リポジトリのリモートURLをコピーし、メモ帳で開いたconfigファイルの[remote "origin"]のurl部分を上書き保存する。

認証設定(Personal Access Token)

試しにgit pullを実行すると以下のように表示された。パスワード認証が廃止され、PATが必要らしい。

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

GitHubで、右上アイコン → Settings → Developer settings → Personal Access Tokens → Tokens(classic) を開き、「Generate new token」をクリックする。

適切な設定をし、「Generate token」をクリックする。

項目 入力内容
Token name 意図のわかりやすい名前を設定
Resource owner 対象のリポジトリがある個人または組織
Expiration PAT有効期限
Repository access Resource ownerにあるリポジトリのエクセス範囲(セキュリティ面を考慮しOnly select repositories推奨)
Permissions 必要最小限の権限を設定(私はContentsにRead and writeを設定)
作成完了するとPersonal Access Tokenが表示される。これは1回のみの表示なので、忘れないようにメモをしておく。
(間違ってもパブリックな環境に保存しないこと)

接続確認

Ubuntuターミナルの対象リポジトリにてgit pullしてみるとユーザー名とパスワードの入力を求められるので、以下のように入力する。

Username for 'https://github.com': GitHubユーザー名
Password for 'https://Kent-Watson@github.com': 取得したPAT

以上で、GitHubへのHTTPS接続が成功した。

入力省略設定

ただ、ユーザー名とPATを接続の度に入力するのは手間なので、次回以降は認証作業を省略するために以下を実行する。
いくつかのモードがあるようだが、今回は有効期限のないstoreモードで設定をした

git config --global credential.helper store

このコマンドを実行すると、初回の接続では認証作業(ユーザー名とPATの入力)が必要だが、2回目以降は入力を求められなくなる。

おわりに

SSHで接続できなくなった原因を特定できなかったのはよろしくないが、ひとまず開発に戻れそうで安心。

Discussion