2025-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段階認証を必須とするという設定が可能であり、ほとんどの場合それを採用していると思われるので、面倒でも継続しておくべきであろう。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Dell Pro Max with GB10でCOEIROINK Engineを実行する
Dell Pro Max with GB10 2台をつなげて運用する
macOSのシステムデータの中身を見て不要なファイルを削除する
オンライン事業所年金情報サービスでダウンロードしたXMLを表示する
キーボードで直接入力したテキストを音声合成しOBS Studioで配信する
マイクで喋った日本語をテキスト変換+音声合成しOBS Studioで配信する
マイクで喋った日本語をテキスト変換してOBS Studioにリアルタイムで表示する【3】
マイクで喋った日本語をテキスト変換してOBS Studioにリアルタイムで表示する【2】
マイクで喋った日本語をテキスト変換してOBS Studioにリアルタイムで表示する【1】
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【ひかり電話+VoIPアダプタ】LANしか通ってない環境でアナログ電話とFAXを使う
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
size_tとssize_tを使い分けてSegmentation Faultを予防する
CORESERVER v1 CORE-MINIプランでownCloudをインストールする
LinuxからWindowsの共有フォルダをマウントする
【Apache】サーバーに同時接続可能なクライアント数を調整する
VirtualBoxの仮想マシンが突然ネットワークにつながらなくなった場合
Intel Macbook2020にBootCampで入れたWindows11 Pro 23H2のBluetoothを復活させる