2023-09-28
GitLabはローカルにインストールするパッケージのみならず、GitHubのようにグローバルに利用できるGitLab.comというサイトサービスも存在する。
GitHubと同様パブリック・プライベート両方のリポジトリを作成でき、プロジェクト単位で管理するのでBTSとしても利用するならGitHubより優れている。
ユーザー名・パスワードを登録してSSHの公開鍵を登録してSSHでgit cloneできるのなら特に問題なくGitHubの時と同様。
しかし、社内ファイアウォール内部のマシンからだとSSHが使えない場合があるので、HTTPS経由でクローン・編集することになるのだが、ユーザー名・パスワードでやろうとすると以下のように言われてエラーになる。
git clone https://gitlab.com/my-test-project/example.git Cloning into 'example'... Username for 'https://gitlab.com': hogeuser Password for 'https://hogeuser@gitlab.com': remote: HTTP Basic: Access denied remote: You must use a personal access token with 'read_repository' or 'write_repository' scope for Git over HTTP. remote: You can generate one at https://gitlab.com/profile/personal_access_tokens fatal: Authentication failed for 'https://gitlab.com/my-test-project/example.git/'
つまりアクセストークンを使いなさいと言われているので、メッセージの通り、
https://gitlab.com/profile/personal_access_tokens
にアクセスし、Nameトークン名を入力(例:my-token)、Expires at有効期限はひとまず未入力(無期限)、Scopesにread_repository、write_repositoryのチェックを入れ、Create personal access tokenで作成。
するとYour new personal access tokenにアクセストークン文字列が表示されるので、これを以下のようにコマンドに埋め込む。
git clone https://oauth2:アクセストークン文字列@gitlab.com/プロジェクト名/リポジトリ名.git
今回の例だと以下の様に実行。
git clone https://oauth2:AAAABBBBCCCCDDDDEEEE@gitlab.com/my-test-project/example.git Cloning into 'example'... remote: Enumerating objects: 445, done. remote: Counting objects: 100% (445/445), done. remote: Compressing objects: 100% (410/410), done. remote: Total 445 (delta 57), reused 386 (delta 30), pack-reused 0 Receiving objects: 100% (445/445), 1.71 MiB | 5.88 MiB/s, done. Resolving deltas: 100% (57/57), done.
無事にhttpsでクローンできた。read,writeに設定しているので編集、commit/pushも可能となる。
しかし、ユーザー名もパスワードも聞かれずこの短いトークン文字列のみでプライベートリポジトリを取得できてしまうというのは、セキュリティ的に大丈夫なのだろうか???
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
TSUKUMOのマルチGPUパソコンWA9J-X211/XTのUbuntu Server 22.04でMYCOEIROINK作成コードを実行し音声合成モデルをトレーニングする
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とCOEIROINK Engineを導入する
Python venv(仮想環境作成)でError: Command returned non-zero exit status 1のエラー対処法
【Ubuntu】プロジェクトごとに複数のPythonバージョンを使い分ける
【PHP】フォーム入力を受け取り出力する
【Ubuntu】aptでインストールしたapache2にソースコンパイルしたphpをマルチスレッドモードで組み込む
【PHP】HTMLファイルを読み込んで文字列変換して出力する
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とVOICEVOX Engineを導入する
【VOICEBOX Engine】403 Forbidden Origin not allowedの対処法
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows版Google Driveが使用中と言われアンインストールできない場合
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【Apache】サーバーに同時接続可能なクライアント数を調整する
Googleスプレッドシートを編集したら自動で更新日時を入れる
size_tとssize_tを使い分けてSegmentation Faultを予防する