登録日: 2021-01-29 更新日: 2021-01-29
「Lubuntu 20.10」をUSB メモリにインストール しました。
前回 は「Lubuntu 20.10」にて「Update Notifier」と「Apply Full Upgrade」の国際化をプルリクエストしました。そのとき「git clone」でのURL 指定は、いつものように「HTTPS」のURL を使いました。(「HTTPS」で接続)
-
今年の夏あたり、GitHub の認証方式の強化があるようです。 それに伴い、端末からの「git push」時に、GitHub のアカウントのパスワードを使っての認証が使えなくなりそう。
「git clone」で「SSH」接続のURL を使うと、今まで通りにプルリクエストができるようなので、 「SSH」接続での準備のやり方を調べてみました。その備忘録です。
-
ちなみに、ダウンロード目的の「git clone」など、プルリクエストをしない使い方なら影響はなさそう。
-
-
-
しばらくすると、Git 操作の認証でアカウントパスワードが使えなくなるみたい:
前回、端末から「git (2.27.0)」コマンドを使用してパスワード入力を伴う「git push」を使いましたが、その操作についての注意勧告のメールが来ました。
2021年8月13日以降、Git のパスワードを使用した基本認証は廃止され、まもなく機能しなくなるらしく、 アカウントの「2要素認証」を有効にしなさいとのこと。
Token authentication requirements for Git operations
ちなみに、Manjaro だと:
$ git --version git version 2.30.0
→「Lubuntu 20.10」のgit のバージョンは低いようです。アップするとコマンドのパスワード入力時に「個人アクセストークン」を入れられるようになるのかな。
-
影響を受けるワークフロー
-
推奨される回避策:
-
とりあえずは、SSH キーをパソコンに追加登録しておくと安心かな:
-
SSH キーがすでに存在するかを確認:
$ ls -1 ~/.ssh ls: '/home/ubn/.ssh' にアクセスできません: そのようなファイルやディレクトリはありません
ファイルが存在する場合:
$ ls -1 ~/.ssh id_ed25519 id_ed25519.pub known_hosts
-
別のSSH キーを使いたいか、まだ持っていない場合は、新しいSSH キーを生成します:
$ ssh-keygen -t ed25519 -C "GitHub のメールアドレス" Generating public/private ed25519 key pair. Enter file in which to save the key (/home/ubn/.ssh/id_ed25519): ←(Enter キー)デフォルトの場所にファイルを保存 Created directory '/home/ubn/.ssh'. Enter passphrase (empty for no passphrase): ←(パスワード入力) Enter same passphrase again: ←(パスワード入力) Your identification has been saved in /home/ubn/.ssh/id_ed25519 Your public key has been saved in /home/ubn/.ssh/id_ed25519.pub The key fingerprint is: SHA256:xxxxxxxxxxxxxxxxxxxxxxxxx GitHubのメールアドレス The key's randomart image is: +--[ED25519 256]--+ | o*=.| | E . o=o*+| | . ..+ooB+o| | ....o.=O=| | S +o=B=| | . ===.| | =o+.o| | =...| | ...| +----[SHA256]-----+
→~/.ssh に入力したメールアドレスをラベルに使った新しい SSH キーが作成されます。
-
ssh-agent を開始しておきます:
$ eval "$(ssh-agent -s)" Agent pid 2515
-
SSH プライベートキーを ssh-agent に追加:
$ ssh-add ~/.ssh/id_ed25519 Enter passphrase for /home/ubn/.ssh/id_ed25519: ←(パスワードを入力) Identity added: /home/ubn/.ssh/id_ed25519 (GitHubのメールアドレスが表示)
-
SSH キーを GitHub アカウントに追加
-
「SSH 公開鍵」を表示:
$ cat ~/.ssh/id_ed25519.pub ssh-ed25519 AAAxxxxxxxx〜xxxxxxxxxxxxxxx/h GitHubメールアドレス
→表示された「SSH 公開鍵」を範囲選択して、右クリック→「コピー」としてクリップボードにコピーします:
-
GithUB の任意のページでサインイン
GithUB の任意のページをブラウザで開きます。
ページ右上の「横3本」をクリック→「Sign in」→「Sign in to GitHub」画面
→登録している「Eメールアドレス」と「パスワード」を入力して、サインインします。
→サインインされると、画面右上に自分が登録した、自分のアイコン(アバター)が表示されます。
-
右上の自分のアイコン(アバター)をクリック
「Settings」→「Public profile」画面
左側の「Account settings」にある「SSH and GPG keys」をクリック
右の緑色の「New SSH key」または 「Add SSH key」をクリック
「SSH keys / Add new」画面
[Title]に、使っているパソコンがわかりやすい説明を追加:
Manjaro Xfce GitHub
[Key]にて、右クリック→「貼り付け」で、クリップボードにコピーした「キー」を貼り付け:
ssh-ed25519 AAAxxxxxxxx〜xxxxxxxxxxxxxxx/h GitHubのメールアドレス
[Add SSH key] をクリック
-
SSH 接続をテストします
SSH キーをセットアップして GitHub のアカウントに追加した後の接続をテストします。
$ ssh -T git@github.com The authenticity of host 'github.com (52.69.186.44)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no/[fingerprint])?
→表示されるメッセージのフィンガープリントがGitHubのRSA公開鍵フィンガープリントと一致することを確認します。
- GitHub の公開鍵のフィンガープリントは次のとおりです。
SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 (RSA) SHA256:br9IjFspm1vxR3iA35FWE+4VTyz1hYVLIE2t1/CeyWQ (DSA)
→含まれている場合は、yesと入力します。
「yes」
Warning: Permanently added 'github.com,13.114.40.48' (RSA) to the list of known hosts. Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.
和訳:
警告:既知のホストのリストに「github.com、13.114.40.48」(RSA)を恒久的に追加しました。 こんにちは「ユーザー名」! 認証に成功しましたが、GitHub はシェルアクセスを提供していません。
→Hi ユーザー名! のメッセージが表示されれば公開鍵の設定はOK で、SSH 接続もできました。
-
端末から、SSH 接続を使ってみます:
参考:
(初心者向け)GitHubアカウントにターミナルでログイン(SSH接続)する
-
Git の初期設定:
$ git config --global user.name "githubに登録したユーザー名" $ git config --global user.email "githubに登録したメールアドレス"
-
Git の初期設定の確認:
$ git config -l user.email=入力したメールアドレス user.name=入力したユーザー名
-
URL の与え方で「SSH」で接続するか、「HTTPS」で接続するかを指定します。
-
「git clone」時に、HTTPS で接続したい場合:
- 指定するURL は github のサイトにて、HTTP をクリック、右のボタンでコピーできます。
$ cd ~/Git2/ [~/Git2]$ git clone https://github.com/ユーザー名/lubuntu-update-notifier.git
→push する時にユーザー名とパスワードを求められるので、github のユーザー名とログインパスワードを入力します。
-
「git clone」時に、SSH で接続したい場合:
$ cd ~/Git2/ $ git clone git@github.com:ユーザー名/lubuntu-update-notifier.git
→push する時にパスワードを求められるので、SSH の公開鍵を作成した時のパスワードを入力します。
-
1. 後から、「git push」などのリモートリポジトリとのやりとりをSSH 接続に変更したいとき:
$ git remote set-url origin git@github.com:ユーザー名/lubuntu-update-notifier.git
-
2. 後から、「git push」などのリモートリポジトリとのやりとりをHTTPS 接続に変更したいとき:
$ git remote set-url origin https://github.com/ユーザー名/lubuntu-update-notifier.git
-
正しく登録できたかの確認:
$ cd ~/Git2/ $ git remote -v
-
-
まとめ
GitHub でプルリクエストすることも少なくなりました。 ただ、自分のアカウントページにpush することはありそうなので、備忘録として残しました。
-
-
目次
- しばらくすると、Git 操作の認証でアカウントパスワードが使えなくなるみたい:
- まとめ
-
-