🐙

gitlabでの2段階認証設定時における環境の取得方法

2023/08/10に公開

gitlabは自分のアカウントで2段階認証の設定をしている場合はgit clone実行時にユーザー名とパスワードを入力するだけではcloneできない仕様になっている。
以下のどちらかを対応することでgit clone可能。


アクセストークンの作成

アクセストークンを発行し、git clone時のURLに発行したトークンの情報を入力することでgit cloneが可能となる。
作成方法はこちらを参照。
コマンドは以下のようになる。

git clone http://oauth2:[作成したトークン]@gitlab.com:[gitlabで設定しているポート番号]/[ユーザー名]/[レポジトリ].git

gitlab.comは設定するgitlabに応じて適宜変更すること、今回は便宜上gitlab.comで記述している。


鍵認証設定

鍵認証の設定を行うことでもgit cloneが可能となる。
毎回、URLにトークンの情報を入力する手間が省けるのでこちらを推奨。

まずはクライアント側で鍵の作成と公開鍵を確認

ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub

次にgitlabへ公開鍵の登録
登録後、以下のコマンドで接続確認

ssh -T git@gitlab.com -i ~/.ssh/id_rsa -p [ssh用のポート番号]

以下のように表示されれば正しく接続できている。

Welcome to GitLab, @[ユーザー名]!

毎回、鍵情報やポート番号を記入するのは面倒なので、~/.ssh/configに接続情報を記載する。

~/.ssh/config
Host gitlab
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa
    IdentitiesOnly yes
    Port [ssh用のポート番号]

以下のコマンドで接続確認

ssh -T git@gitlab

@以降の文字列は~/.ssh/configのホスト名に記載した文字列を参照しているので、そろえる必要がある。

以下のように表示されれば正しく接続できている。

Welcome to GitLab, @[ユーザー名]!

git clone時は以下のコマンド

git clone http://git@gitlab/[ユーザー名]/[レポジトリ].git

reference

Discussion