2023-02-26
プライベートなソースコードをオンラインでバージョン管理する場合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段階認証を必須とするという設定が可能であり、ほとんどの場合それを採用していると思われるので、面倒でも継続しておくべきであろう。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【VOICEBOX Engine】403 Forbidden Origin not allowedの対処法
【Python urllib】Proxy URL had no scheme, should start with http:// or https://の対処法
FirebaseでiOSアプリにプッシュ通知機能を実装する【3】
FirebaseでiOSアプリにプッシュ通知機能を実装する【2】
FirebaseでiOSアプリにプッシュ通知機能を実装する【1】
Apple Push Services: この証明書は信頼されていません【対処法】
OpenAI Assistants APIメモ【4】スレッドの一覧表示と削除
OpenAI Assistants APIメモ【3】GPT-3.5およびGPT-4のアシスタントが質問に回答する
OpenAI Assistants APIメモ【2】GPT-3.5およびGPT-4のアシスタントを作成
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows版Google Driveが使用中と言われアンインストールできない場合
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【Apache】サーバーに同時接続可能なクライアント数を調整する
Pythonで処理にかかった時間を計測するには
Googleスプレッドシートを編集したら自動で更新日時を入れる