社内などのproxy環境でgitを使う
会社でproxyを使って社外にアクセスする場合、gitでアクセスしようとしてもはじかれる事があるかと思います。
いろいろ調べると出てきますがなにやらcorkscrewを使うといいらしい。。。
いろいろ断片的だったので実際に試してみて使えるようになったのでメモとして残しておきます。
環境はCentOS系は5と6でいけました。
corkscrewのインストール
wget http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz
tar zxf corkscrew-2.0.tar.gz
cd corkscrew-2.0
./configure
make
make install
インストールはこれだけでOK
認証ファイルの作成
vi /usr/local/bin/proxy_auth
user_name:password
プロキシのユーザー名、パスワードをコロンで挟んで記述します
実行ファイルの作成
vi /usr/local/bin/corkscrew_proxy.sh
corkscrew proxy.server 8080 $1 $2 /usr/local/bin/proxy_auth
chmod +x /usr/local/bin/corkscrew_proxy.sh
実行コマンドを記述したスクリプトを作成
実行権限を付与
シェルの設定に追記
- .bashrc
export GIT_PROXY_COMMAND=/usr/local/bin/corkscrew_proxy.sh
これでgitコマンドを使うときにproxy経由でアクセスする事ができるようになりました。
やったね!
何度も行うのは面倒なのでスクリプト化してみました。
#!/bin/sh USERNAME="user_name" PASSWORD="password" HOST="host" PORT="port" wget http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz tar zxf corkscrew-2.0.tar.gz cd corkscrew-2.0 ./configure make make install cat <<EOT > /usr/local/bin/proxy_auth $USERNAME:$PASSWORD EOT cat << EOT > /usr/local/bin/corkscrew_proxy.sh #!/bin/sh CORKSCREW=`which corkscrew` \$CORKSCREW $HOST $PORT \$1 \$2 /usr/local/bin/proxy_auth EOT echo 'created file /usr/local/bin/proxy_auth' cat << EOT >> ~/.bashrc export GIT_PROXY_COMMAND=/usr/local/bin/corkscrew_proxy.sh EOT echo 'created file /usr/local/bin/corkscrew_proxy.sh' chmod +x /usr/local/bin/corkscrew_proxy.sh