モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

目次目次を開く/閉じる

GCP Cloud Source Repositories に squid 経由でアクセスする設定例

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2021/10/08
最終更新最終更新
2024/01/14
記事区分記事区分
一般公開

目次

    3Dモデリングとゲームエンジンに興味があります。Blenderも活用!

    Squid は HTTP Proxy です。加えて、FTP over HTTP や SSH over HTTP といった技術を併用することで、FTP や SSH プロキシとしても機能します。本ページでは、

    • すべて HTTP 通信で GCP Cloud Source Repositories にアクセスする方法と、
    • SSH over HTTP を併用することで GCP Cloud Source Repositories にアクセスする方法

    の二つを記載します。いずれも squid 経由とします。

    Cloud SDK を用いる方法

    Cloud SDK は GCP のための HTTP クライアントです。HTTP proxy である squid を経由して通信できます。

    補足: Block access to consumer accounts による制限の対象となります。

    環境変数を設定しておきます。

    export http_proxy=http://localhost:3128
    export https_proxy=http://localhost:3128
    

    レポジトリを作成および clone します。

    gcloud source repos create hello-world
    gcloud source repos clone hello-world
    

    すべて squid 経由の通信となります。

    CONNECT oauth2.googleapis.com:443
    CONNECT sourcerepo.googleapis.com:443
    

    Git は SSH プロトコルと HTTP プロトコルの二つをサポートしています。上記設定を行なうと、HTTP プロトコルを利用するように clone されることが分かります。

    vagrant@debian11:~/hello-world$ cat .git/config
    [core]
            repositoryformatversion = 0
            filemode = true
            bare = false
            logallrefupdates = true
    [credential "https://source.developers.google.com/"]
            helper = 
            helper = !gcloud auth git-helper --account=username@gmail.com --ignore-unknown $@
    [remote "origin"]
            url = https://source.developers.google.com/p/myproject-20210411/r/hello-world
            fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
            remote = origin
            merge = refs/heads/master
    

    参考資料: Quickstart: Create a repository

    SSH over HTTP を用いる方法

    GCP Cloud Source Repositories は Git の SSH プロトコルによる通信にも対応しています。

    補足: SSH 鍵による認証であるため、Block access to consumer accounts による制限の対象外となります。

    参考資料: Setting up local authentication

    connect-proxy のインストール

    SSH プロトコルによる GCP Cloud Source Repositories との通信を squid 経由で行なうためには、SSH over HTTP という技術を併用する必要があります。具体的には connect-proxy を利用します。

    sudo apt install connect-proxy
    

    インストールされた connect または connect-proxy コマンドを利用します。

    vagrant@debian11:~$ ls -l `which connect`
    lrwxrwxrwx 1 root root 13 Dec 31  2020 /usr/bin/connect -> connect-proxy
    

    ssh config の設定

    SSH 鍵のペアを作成して、公開鍵を GCP に登録します。

    ssh-keygen -t rsa -C "username@gmail.com"
    

    秘密鍵を参照できるような SSH config を作成します。localhost の squid に対して SSH over HTTP 通信を行なうように ProxyCommand を設定することがポイントです。

    vagrant@debian11:~$ cat .ssh/config
    Host my-gcp-repos
      HostName source.developers.google.com
      User username@gmail.com
      IdentityFile ~/.ssh/id_rsa
      Port 2022
      ProxyCommand connect -H localhost:3128 %h %p
    

    squid 設定変更

    ポートおよびメソッドによる制限を squid で設定している場合には、TCP 443 に加えて TCP 2022 が必要となるため許可しておきます。

    acl Safe_ports port 443         # https
    acl Safe_ports port 2022         # SSH for GCP Cloud Source Repositories
    
    acl SSL_ports port 443
    acl SSL_ports port 2022
    

    git-clone

    以下のように clone します。

    git clone ssh://my-gcp-repos:/p/myproject-20210411/r/hello-world
    

    確かに squid 経由となっていることが squid の access.log から確認できます。

    CONNECT source.developers.google.com:2022
    

    SSH プロトコルを利用するような git 設定になっていることも確認できます。

    vagrant@debian11:~/hello-world$ cat .git/config
    [core]
            repositoryformatversion = 0
            filemode = true
            bare = false
            logallrefupdates = true
    [remote "origin"]
            url = ssh://my-gcp-repos:/p/myproject-20210411/r/hello-world
            fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
            remote = origin
            merge = refs/heads/master
    
    Likeボタン(off)0
    詳細設定を開く/閉じる
    アカウント プロフィール画像

    3Dモデリングとゲームエンジンに興味があります。Blenderも活用!

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    >>さらに詳しくステッカーを贈る
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      ログインする

      関連記事