2023-12-18
ファイアウォール内側にある社内マシンにGITリポジトリがある場合、社外からは会社のゲートウェイサーバへSSH接続し、さらに社内マシンへのSSHポートへフォワードすることで操作できる。
Android StudioからClone/Pushすることを想定しているので、まずWindowsにGITを入れる。
https://git-scm.com/download/win
からダウンロードし、インストーラを実行。
注意すべきオプションはConfiguring the line ending conversionsで、改行コードの変換をするかどうか。
普通そのままのファイルでやりとりするはずなので、自分は
Checkout as-is, commit as-is
を選択し、変換は無しとした。インストール後GIT bashターミナルを起動し、
git config --global user.name hogeuser git config --global user.email hogeuser@example1155.jp git config --global core.quotepath false git config --global core.autocrlf false
と最低現設定。user.nameは社内ローカルGITサーバのアカウント名と同一とする。
sshディレクトリの作成と秘密鍵を設置する。
cd mkdir .ssh cd .ssh ここに社内ローカルGITサーバへSSH接続しているときの秘密鍵=id_rsaを設置する。 id_rsa
SSHサーバーとクライアントのログイン鍵ペアの作成、関係はこちらなど参照。
<ポートフォワードの準備>
ローカルループバックアダプタを追加する。
コントロールパネル→ハードウェアとサウンド→デバイスマネージャーを起動し、「ネットワーク アダプター」を選択する。
選択するとメニューの「操作」で「レガシ ハードウェアの追加」が選べるので、起動し、
「一覧から選択したハードウェアをインストールする」を選択、「ネットワーク アダプター」を選択。
一覧に
「製造元」Microsoft
「モデル」Microsoft KM-TEXT Loopback Adapter
があるので、これを選択してインストール。
コントロールパネルに戻って「ネットワークとインターネット」「ネットワークと共有センター」の左メニューの
「アダプターの設定の変更」を開く。
ここに「イーサネット2 Microsoft KM-TEST...」が現れるので、ダブルクリックして「プロパティ」を開く
「インターネット プロトコル バージョン 4(TCP/IPv4)」を選択し「プロパティ」を開く
「次のIPアドレスを使う」にして、
IPアドレス:169.254.1.1 サブネットマスク:255.255.255.0 デフォルト ゲートウェイ:空欄
「次のDNSサーバーのアドレスを使う」にして、
優先DNSサーバー:空欄 代替DNSサーバー:空欄
として「OK」。
「コマンドプロンプト」を「管理者として実行」して、
ipconfig
として、ループバックに上記IPが割り当てられていればOK。
ポートフォワードのツールはsshコマンドをはじめいくつかあるが、ここではPortforwarderを使用する。
http://toh.fuji-climb.org/pf/JP/download.html
ダウンロードして展開して、Portforwarderフォルダにconfit.txtを作成する。
config.txtでは、
「会社のゲートウェイサーバへの接続」情報と、
「接続してからの社内GITサーバへのSSHフォワード」情報を書く。
Host company-gateway HostName company-gateway.example1155.jp Port 22222 # hostname or IP address User hogeuser # username on server. NEEDED LocalForward 169.254.1.1:22112 local-gitserver.example1155.jp:22 Compression yes # if you need compression
ここでは外部から接続できる会社のゲートウェイサーバ(company-gate.example1155.jp)のSSH公開ポートが22222、
アカウント名がhogeuser、社内のローカルGITサーバ(local-gitserver.example1155.jp)のSSH公開ポートが22、
であるとして、
LocalForwardでさきほどのループバックアドレスに22112ポートを割り当て、社内GITサーバの22番へフォワードしている。
Portforwarderフォルダにゲートウェイサーバcompany-gate.example1155.jpへ接続するための秘密鍵「id_rsa」を設置する。
Portforwarder.exeを起動し、company-gatewayを選び、接続。エラー無く成功すればトンネルが無事掘られている。
これで社外Windowsマシンと社内ローカルGITサーバーがつながったので、Android Studioを設定する。
Android Studioを起動し、「Settings」→「Version Control」トップタブ
<Project>のVCSを「Git」に選びなおす。
「Version Control」→「Git」を選択。
Path to Git executable: にインストールしたGITパスを設定、たいていは
C:\Program Files\Git\bin\git.exe
であるはず、「Test」が成功したら「OK」する。
なお、
「Warn if CRLF line separators are about to be committed」は
「改行コードがCRLFのファイルをコミットしようとしたら警告出すか?」
という意味だが、これはgitconfigのcore.autcrlfが、
false: 自動変換しない: なら上記は「チェックを外す」、
input,true: 自動変換する: なら上記は「チェックしたまま」がいい。
→わかりにくいので別記事にまとめました
社内GITサーバーのプロジェクトをクローンする。社内GITサーバーのプロジェクトリポジトリが
local-gitserver.example1155.jp:/git/TestProject.git
であるとすると、
Android Studioメニューで「Check out project from Version Control」「Git」を選択し、「URL」に
ssh://hogeuser@169.254.1.1:22112/git/TestProject.git
と、ポートフォワードのアドレス・ポートとローカルサーバのユーザ名を指定記述し「Clone」できれば完了!!
チェックアウトしたプロジェクトを起動し、Version ControlタブでLogなどが見れればOK。
ローカルGITサーバー側:GITの設定はこちら
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Windows版Google Driveが使用中と言われアンインストールできない場合
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
【Apache】サーバーに同時接続可能なクライアント数を調整する
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Linux】iconv/libiconvをソースコードからインストール
Ubuntu Server 21.10でイーサリアムブロックチェーン【その5】