SSH ポート フォワーディングのセットアップ

Enabling SSH access to Git repositories in Bitbucket Server

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

ポート フォワーディングをセットアップする理由

ポート フォワーディングのセットアップを検討するシナリオは 2 つ考えられます。

SSH URL からのポート番号の削除

Bitbucket Server は既定で SSH 接続を 7999 ポートでリッスンします。

Bitbucket Server からクローンを作成する場合、ユーザーは URL にこのポートを含める必要があります。

git clone ssh://git@bitbucket.mycompany.com:7999/PROJECT/repo.git

URL 内にポート番号を含めるのではなく、ポート フォワーディングをセットアップして既定の SSH ポートへの接続が Bitbucket Server がリッスンしているポートに転送されるようにしたい (例: ポート 22 からポート 7999 に転送) 場合があります。

これにより、ユーザーは次のように、ポート番号が含まれていない URL を使用できます。

 git clone ssh://git@bitbucket.mycompany.com/PROJECT/repo.git

Bitbucket Server がリバース プロキシの背後にある別のマシンで実行されている

Apache フロントエンドの背後に Bitbucket Server をセットアップする」ドキュメントの説明にしたがってシステムを構成している場合があります。

この場合、ユーザーは SSH 接続では Bitbucket Server に直接アクセスできない可能性があります。また、直接接続できる場合も、SSH および HTTPS の URL を一致させたい場合があります。

たとえば、上記のトポロジーを採用している場合、ポート フォワーディングを行わない場合 (既定ポートが 7999 と仮定した場合)、ユーザーは次のように、バックエンドから直接 Bitbucket Server をクローンする必要があります。

git clone ssh://git@bitbucket.backend.atlassian.com:7999/PROJECT/repo.git 

In your network, the bitbucket.backend.atlassian.com machine may not be accessible directly, or you may want the URL to be consistent with the HTTPS URL of https://bitbucket.atlassian.com/scm/PROJECT/repo.git.

In this case, you need to set up port forwarding on the bitbucket.atlassian.com machine to accept connections and forward them to port 7999 on the bitbucket.backend.atlassian.com machine.

ポート フォワーディングのセットアップ方法

HAProxy

アトラシアンでは、SSH 接続の Bitbucket Server への転送に HAProxy を使用することをおすすめしています。

HAProxy は、Linux、Solaris および FreeBSD で サポートされています

HAProxy はアトラシアン製品ではないため、アトラシアンでは HAProxy の構成についてのサポートは提供されません。このセクションは情報提供のみを目的としており、お客様の責任でご利用ください。HAProxy ドキュメントを参照することをおすすめします。

HAProxy のインストール

Your operating system may support installing HAProxy using its system package manager, such as apt-getyum or rpm. This will be the easiest way.

または、自身で HAProxy を構築してそれをインストールすることもできます。

  1. http://haproxy.1wt.eu/#down から HAProxy の最新バージョンをダウンロードします。
  2. アーカイブを展開して cd で次のディレクトリに移動します。 

    tar xzvf haproxy-1.4.21.tar.gz
    cd haproxy-1.4.21
  3. ご利用のシステムでの構築方法については、README の説明をお読みください。これは一般に非常に簡単です。Linux 64 ビット 2.6 カーネルの場合のコマンドは以下のとおりです。 

    make TARGET=linux26 ARCH=x86_64
  4. 正常に完了したら、README の説明に従ってインストールします。 

    sudo make install

HAProxy の構成

HAProxy is extremely powerful - it is designed as a HTTPS load balancer, but also can serve as a port forwarder for ssh. Learn more about how to enable client IP forwarding for SSH sessions by setting up Proxy protocol for Bitbucket Data Center.

バージョン 1.4 の完全なドキュメントはこちらにあります。その他のドキュメントは HAProxy の Webサイトでご利用いただけます。

以下は、単純な構成例です。 

global
       daemon
       maxconn 10000

defaults
       timeout connect 500s
       timeout client 5000s
       timeout server 1h

frontend sshd
       bind *:7999
       default_backend ssh
       timeout client 1h

backend ssh
       mode tcp
       server localhost-bitbucket-ssh 127.0.0.1:7999

The above configuration will listen on port 7999 (indicated by the  bind directive) on all network interfaces. As indicated by the  server directive, traffic is forwarded to 127.0.0.1, port 7999. You will need to replace 127.0.0.1 with the IP address of the machine running Bitbucket Server.

次のコマンドを実行することで構成を確認できます。 

haproxy -f haproxyconf.txt -c

haproxy を実行するには、次のコマンドで開始します。

haproxy -f haproxyconf.txt

If you use HAProxy to additionally proxy HTTP traffic, ensure that the running mode configuration is set to http:

backend http
       mode http
	   bind *:80
       server localhost-bitbucket-http 127.0.0.1:7990 

既定の SSH ポートを使用する

既定の SSH ポートでリッスンするように HAProxy を構成することもできます。これにより、このポートをクローン URL で指定する必要がなくなります。

既定では、通常の ssh デーモンはポート 22 で稼働します。次の選択肢があります。

  • 前述の例のように、代替ポートでリッスンするように HAProxy を構成する。
  • 複数のネットワーク インターフェイスを物理マシンで構成し、Bitbucket Server にアクセスするためのインターフェイスを除くすべてのインターフェイスで既定の ssh デーモンがリッスンするように強制する。HAProxy は Bitbucket Server にアクセスするためのインターフェイスでのみリッスンするように構成する。
  • 既定の ssh デーモンを別のポートでリッスンするように移動し、HAProxy をポート 22 にバインドする。

最後の 2 つのオプションについては、HAProxy の構成方法のみ説明します。

最後の例と同じ構成を使用しますが、バインド ポートを 22 に変更します。例:

...
frontend sshd
       bind *:22
...

You will have to run this configuration as the root user, using sudo, because it specifies a port to listen on that is less than 1024.

sudo haproxy -f haproxyconf.txt

SSH ベース URL の構成

ポート フォワーディングをセットアップしたら、Bitbucket Server で SSH ベース URL を構成する必要があります。これにより、Bitbucket Server で表示されるクローン URL は、クローン元の正しいホストとポートを示します。「Bitbucket Server で Git リポジトリへの SSH アクセスを有効にする」の「SSH ベース URL」セクションを参照してください。

最終更新日 2022 年 6 月 24 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.