yu nkt’s blog

nkty blog

I'm an enterprise software and system architecture. This site dedicates sharing knowledge and know-how about system architecture with me and readers.

プロキシ環境下の自前GitLabにアクセスする方法

背景

Gitに関して、何度もプロキシ関連でハマってきて、何度も同じようなことをググってきたので、自分で整理します。

環境

アカウントのプロキシ設定

まず、アカウントにプロキシを設定します。 プロキシの情報は、ログイン時に自動的に設定するようにすればよいので、.bash_profileに記載しておきます。 もしなければ、作成しましょう。

touch $HOME/.bash_profile

httpとhttpsで、両方同じプロキシ and/or 認証情報でよければ、以下のように記載します。

PROXY_INFO="http://(user):(pass)@(host):(port)"
export http_proxy=${PROXY_INFO}
export https_proxy=${PROXY_INFO}
export HTTP_PROXY=${PROXY_INFO}
export HTTPS_PROXY=${PROXY_INFO}
NOPROXY_INFO="localhost,(自前GitLabのホスト)"
export no_proxy=${NOPROXY_INFO}
export NO_PROXY=${NOPROXY_INFO}

もし、httpとhttpsで異なるプロキシ and/or 認証情報が必要であれば、それぞれ個別に記載してください。

これを反映します。

source $HOME/.bash_profile

Gitのプロキシ設定

次に、Gitにプロキシを設定しましょう。

git config --global http.proxy $http_proxy
git config --global https.proxy $https_proxy
git config --global http.sslVerify false
git config --global http.proxyAuthMethod 'basic'

3つ目のコマンドは、オレオレ認証局のカギでもいいこととする、というものなので、セキュリティ的にはマズいです。 そこをよく理解したうえでの自己責任、ということにさせてください。

4つ目のコマンドは、プロキシサーバがサポートしている認証方式によって、basicかどうか異なります。 プロキシによって、異なるかもしれませんし、設定が不要かもしれません。 自分の環境では、4つ目を設定していなかったら、このようなエラーが出てました。

$ git clone https://aaaaa/bbbbb/ccccc.git
Cloning into 'ccccc' ...
fatal: unable to access 'https://aaaaa/bbbbb/ccccc.git/': Invalid file descriptor

下記、ご参考。

github.com