2024-02-25
プライベートなソースコードをオンラインでバージョン管理する場合GitHubではなく、GitLabのほうを使うことが多い。
GitLabに登録してまず一番最初に行うことは、作業サーバーからPush/Pullするため、SSHキー(公開鍵)の登録することである。これは、User Settings→SSH Keys→Add an SSH keyで、その場で作成(generate one)するか、既存の公開鍵(id_ed25519.pub/authorized_keys)を貼り付ける(秘密鍵id_ed25519ではない)。秘密鍵は自分で持っておく。
SSHキーを登録したら、作業サーバー側の.ssh/configに
Host gitlab.com IdentityFile ~/.ssh/id_ed25519 #秘密鍵ファイル
などと秘密鍵を指定すれば、
git clone git@gitlab.com:my-group/my-project.git
などと、SSH経由でクローン・Push/Pullが可能となる。
ところで、GitLabのWEB管理画面にログインする場合、セキュリティの観点から、通常のID・パスワードを入力したあと、さらに携帯端末のワンタイムパスワードアプリからワンタイムパスワードを入れなければならない2段階認証を採用している。2段階認証の設定方法は、以下の通りである。
1、User Settings→Account→Two-Factor Authenticationページへ行く
2、携帯端末で、「FreeOTP」アプリをダウンロードして開く
3、GitLabのページに表示されているQRコードをFreeOTPアプリで読み取る
4、FreeOTPアプリで表示された数値文字列(PINコード)をGitLabのページに打ち込む
以上の作業で、次回のログインからは、ユーザー名とパスワード後、アプリで表示されたワンタイムパスワードを打ち込むことで晴れてログイン可能となる。
これはつまり、アプリの存在を忘れて携帯端末を初期化してしまった場合ログイン不可能となることを意味する。
そのようなときに備えて、GitLabの2段階認証設定完了画面でリカバリーコードが表示されていたはずである。これを打ち込めば、再度ログインできるわけだが、それに気づかず閉じてしまいリカバリーコードすら無い状態である。こんな場合どうするか?
このような場合でも、SSHキーの登録さえしていればその場で作業サーバーからリカバリーコードが取得できる。
作業サーバーで、以下のように打つ。
ssh git@gitlab.com 2fa_recovery_codes Any existing recovery codes you saved will be invalidated. (yes/no) yes
すると、以下のように10通りのリカバリーコード16進文字列が表示される。(*は実際の文字列)
Your two-factor authentication recovery codes are: *************** *************** *************** *************** *************** *************** *************** *************** *************** *************** During sign in, use one of the codes above when prompted for your two-factor code. Then, visit your Profile Settings and add a new device so you do not lose access to your account again.
最初これをどうログイン画面で打つのかわからなかったが、なんてことはない、このなかのどれか1行好きなものを選んで、ワンタイムパスワードの代わりに入力するだけである。
Enter the code from the two-factor app on your mobile device. If you've lost your device, you may enter one of your recovery codes.
と表示されている。ワンタイムパスワード入力フォームに入れれば良いだけ。
このような経験をするともう2段階認証なんてヤメとか思うことがあろうが、2段階認証はプロジェクトグループの管理者が他の作業者を招待する際、その作業者がプロジェクトにアクセスするには2段階認証を必須とするという設定が可能であり、ほとんどの場合それを採用していると思われるので、面倒でも継続しておくべきであろう。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Intel Macbook2020にBootCampで入れたWindows11 Pro 23H2のBluetoothを復活させる
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
【Apache】サーバーに同時接続可能なクライアント数を調整する
Windows版Google Driveが使用中と言われアンインストールできない場合
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
GitLabにHTTPS経由でリポジトリをクローン&読み書きを行う
cannot guess build type; you must specify oneと言われた場合
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
Pythonで処理にかかった時間を計測するには