github + VScode で毎日草を生やしてるだけでしたが,複数人でgitで共有しながら作業したり,Linix環境下でgitを使おうと思ったところ,認証で色々躓きました.
うろ覚えですが,個人用プロジェクトの開発に際して,VScodeでgitの初回認証をしていたんですが,自動でブラウザが立ち上がり認証してくれるため,特に躓いた記憶がありません.ちゃんと理解して使わないとだめですね.
さて,今回Linixの新しい環境で git clone をする際にユーザー名とパスワードを求められ,正しく入力するもエラーになるという状況でした.
$git clone https://github.com/user/repository.git
cloning into 'repository'
Username for 'https://github.com': user
Password for 'https://username@github.com': password ← パスワード認証は廃止のようです.
remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead. ← トークンを使えばよいみたいですね.
remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information.
fatal: unable to access 'https://github.com/username/
どうやら,gitでは2021年にパスワード認証が廃止されており,パーソナルアクセストークンを用いたHTTPS接続,もしくはsshを用いて認証するみたいです.ほうほう.
アクセストークンを用いたHTTPS接続
まずアクセストークンを用いたHTTPS接続です.
1.設定画面を開く.
2.Developer settings を開く.
3.Presonal access tokens → Token(classic) を選択し,Generate new token を開く
4. Noteを記入,Expirationを選択,Select scopesを選択.(repoでいいと思います.)
5.トークンをコピーする.(二度と見れないので慎重にしましょう.)
6.パスワードの代わりに取得したトークンを使用することで認証できる.
パーソナルアクセストークンを取得し,git clone をしてみましょう.
$ git clone https://github.com/user/repository.git
Cloning into 'repository'...
Username for 'https://github.com': user
Password for 'https://username@github.com': トークンを入力する
これでgit にHTTPS接続ができるようになります.
ssh接続(おすすめ)
SSH秘密鍵,公開鍵を生成しましょう.
$ ssh-keygen
Generating public/private key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):入力なしでエンター
Enter passphrase (empty for no passphrase):入力なしでエンター
Enter same passphrase again:入力なしでエンター
これでsshキーが生成できました.ホームディレクトリの.sshフォルダに作成されていると思います.
$ ls ~/.ssh
authorized_keys id_rsa id_rsa.pub
sshキーが生成出来たら,githubで設定しましょう.
1.設定画面を開く.
2.New SSH Key を開く
3.titleを入力,keyには id_rsa.pub の中身を記入する.
4.add SSH Key を押す.
それでは,git clone をしてみましょう.
$git clone git@github.com:user/repository.git
Cloning into 'repository'...
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? ← yes を入力
これでgit clone ができるようになったと思います.
ワシは練習がてらでsshキーを生成して認証しました.では.