Proxy環境下でSSHでgit clone する

この記事は約3分で読めます。

Proxyガ導入されている職場の場合、git clone できない場合があります。
HTTPS経由でよいなら下記の記事の設定で行けるようになるかと思います。

WSL(Windows Subsystem for Linux)のProxy設定方法
Windows上でLinuxコマンドを使うためには、 MSYS2 などがありますよね。最近は別の選択肢として、MicrosftストアからLinuxをインストールできるようになりました。WSL(Windows Subsystem for Li...

しかし ssh で cloneした場合はこれではできません。
今回は Proxy 環境で ssh で git clone する方法を説明します。

スポンサーリンク

プロクシ環境下のエラー

社内プロクシの環境でclone しようとすると下記のようにエラーる場合があります。
サーバにアクセスできない場合です。

$ git clone --verbose git://git.yoctoproject.org/poky.git
Cloning into 'poky'...
Looking up git.yoctoproject.org ... done.
Connecting to git.yoctoproject.org (port 9418) ... fatal: unable to connect to git.yoctoproject.org:
git.yoctoproject.org[0: 198.145.29.90]: errno=Connection timed out
スポンサーリンク

corkscrew

上記の問題を解決するために、下記のツールを使います。
https://github.com/bryanpkc/corkscrew

インストールはUbuntuなら普通に apt でできます。

$ sudo apt-get install corkscrew

つぎにその corkscrew をラップするスクリプトを作成します。
どこでもいいのですが下記の例では ~/bin/ 以下につくっています。
proxy-host と proxy-port のところにはお使いの実際のプロクシのURL、ポートを指定してください。

$ echo '#!/bin/bash' > ~/bin/git-proxy.sh
$ echo "/usr/bin/corkscrew proxy-host:proxy-port $1 $2" >> ~/bin/git-proxy.sh
$ chmod +x ~/bin/git-proxy.sh
$ cat ~/bin/git-proxy.sh
#!/bin/bash
/usr/bin/corkscrew proxy-host:proxy-port $1 $2

あとは GIT_PROXY_COMMAND 環境変数に上記スクリプトを設定し、
PATH変数にそのスクリプトのあるディレクトリを追加します。
下記のように bashrc に追加しておけばよいかと。

$ echo "export PATH=$PATH:~/bin" >> ~/.bashrc
$ echo "export GIT_PROXY_COMMAND=~/bin/git-proxy.sh" >> ~/.bashrc
$ tail ~/.bashrc -n2
export PATH=$PATH:~/bin
export GIT_PROXY_COMMAND=~/bin/git-proxy.sh
$ source ~/.bashrc

これで git clone できるようになったはずです。

スポンサーリンク

まとめ

Proxy環境でgit clone する場合にはcorkscrewを使えばOKです。 GIT_PROXY_COMMAND を設定してください。

コメント