Proxyが存在するネットワーク上でのgit使用

技術部 藤井 洋祐

※※重要 必ず読んでください※※
下記方法でProxy越えを行った場合、使用する環境、会社によってはネットワーク利用規約違反となり、問題と得ることがあります。規約違反など問題が無いことをネットワーク管理者に確認の上、実施してください。また、当方法を実施し、何らかの問題、損害賠償などが発生した場合、当社は一切の責任を負いません。これらのことを認識頂いた上で、各自の責任において、実施お願いします。

Proxy認証が存在するネットワーク環境で、

repo init -u git://android.git.kernel.org/platform/manifest.git

を使用すると、次のようなエラーが発生する場合があります。

~/mydoroid$ repo init -u git://android.git.kernel.org/platform/manifest.git
Getting repo ...
from git://android.git.kernel.org/tools/repo.git
fatal: Unable to look up android.git.kernel.org (port 9418) (Name or service not known)

下記の方法でそれらを回避することが出来ます。

手順

  1. corkscrewをインストール
  2. Proxyとportの編集
  3. ProxyUserとProxyPass ※Proxy認証が必要な場合
  4. gitコマンドを登録

手順に従って、実際の操作を例として記述します。

1.corkscrewをインストール

# apt-get install corkscrew

2.Proxyとportの編集

任意ディレクトリに任意のファイルを作成。
ここでは、proxy-hoge.shとします。

/usr/local/bin/proxy-hoge.sh

下記のように編集

  1. #!/bin/bash
  2. CORKSCREW=`which corkscrew`
  3. $CORKSCREW proxy.hoge.com 8080 $1 $2

※proxy.hoge.comはProxyサーバ
192.168.0.1のようにIDアドレスでも構いません。

# chmod 755 /usr/local/bin/proxy-hoge.sh

3.ProxyUserとProxyPass ※Proxy認証が必要な場合

Proxy認証が必要な場合があります。
corkscrewのヘルプを見ますと

$ corkscrew --h
corkscrew 2.0 (agroman@agroman.net)

usage: corkscrew [authfile]

と表示されます。
[authfile]がProxy認証に必要な情報が設定されたFileとなります。
3行目を以下のように変更してください。

$CORKSCREW 192.168.0.1 8080 $1 $2 /usr/local/bin/hoge_auth

Proxy認証情報ファイルの作成

/usr/local/bin/hoge_auth

下記のように編集

:

Proxyサーバ管理者からIDとパスワードをもらう必要があります。
もらえない場合は、諦めましょう・・・

# chmod 600 /usr/local/bin/hoge_auth

gitコマンドを登録

~/.bashrc
下記を追加

export GIT_PROXY_COMMAND=/usr/local/bin/proxy-hoge.sh

以上で終わりです。