LoginSignup
16
13

More than 5 years have passed since last update.

SSH の Dynamic Port Forwarding 経由でgitのリモートリポジトリに接続する

Last updated at Posted at 2017-02-26

次の条件に当てはまる場合に、踏み台サーバ経由で社内ローカルネットのgitリポジトリに接続する方法

  • 社内のローカルネットにgitのリモートサーバがあって、外部からは直接接続できない
  • メンテナンス等用途の踏み台サーバがあり、踏み台からならgitサーバにも接続できる

手順

  1. SSHの Dynamic Port Forwarding を開始する。 次のように sshで踏み台サーバに接続する。
 $ ssh -D <ポート番号> -N <踏み台サーバアドレス>

例えば、次のように実行すると、socks5のプロキシが localhost:8888 で立ったことになり、fumidai.jp経由で向こう側のネットワークにあるサーバにアクセスできる。

 $ ssh -D 8888 -N fumidai.jp

以下ポート番号は8888として説明する。

  1. gitのプロキシの設定

接続したいリポジトリで 次のように http.proxy を設定する。

 $ git config http.proxy socks5://localhost:8888

するとリポジトリの .git/config に設定が追加される。
もし、どのリポジトリにもこのプロキシを適用するなら、-g オプションを付けてグローバルな設定にすれば良い。

  1. あとは普通にgitで接続する。 これで接続できるので、git pull なり、git fetch してリモートの変更を取り込める。もちろん git push だってできる。

ただ、ホスト名を接続先のローカルネット内の内部DNSで解決している場合にはホスト名では接続できない。その場合はホスト名をローカルネット内のローカルのIPアドレスで指定する。

ブラウザで接続する

踏み台の向こうのgitサーバが、GithubとGitlabとかといったブラウザでアクセスできるものの場合、ブラウザのプロキシとして使うこともできる。
chrome や Firefox でFoxyProxy等のプロキシ設定アドオンを使うと、ON/OFFが簡単で便利

FoxyProxyを使う場合には最低限、次のように設定すればよい。

  • 手動プロキシ設定
    • ホストまたはIPアドレス:localhost
    • ポート:8888
    • SOCKSプロキシ:ON、SOCKS v5 を選択

あとはブラウザでのこのプロキシ設定を有効にして、普通にアクセスするだけ。

参考

16
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
13