0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Core 2 DuoでもMintしたい!④Gitサーバよ、ついでに稼働する?

0
Last updated at Posted at 2025-12-16

📚 シリーズ目次

1. はじめに

GitサーバはSSH接続で特に不都合も感じていなかったのですが、話の流れでHTTPS接続もさせてみます。現状は個人ユースですが、チームでの開発とかだったらSSH接続できる状態はセキュリティ面の担保に手間を要しそうなので。

サーバ環境の構築には、先日セットアップしたMint風味の純Debianを使用します。

remmina_FMV-C8240_192.168.11.33_20251209-113851.png

SSH接続のGitサーバを構築した記事はこちらです。

2. 環境のセットアップ

2.1 Gitのインストール

以下のコマンドで必要なパッケージをインストールします。GitでHTTPS接続を行うためのCGIモジュールは、Gitと一緒に導入されます。

sudo apt install git

2.2 Gitの公開設定

続いて、Apacheでの公開設定を編集します。まずは、Gitリポジトリ用のフォルダを準備しましょう。作成済みのフォルダがあるので、所有者を www-data に変更します。

sudo chown www-data:www-data /var/lib/git

それでは、設定ファイルを作成します。以下をコピペして作成ください。

sudo nano /etc/apache2/sites-available/git.conf
/etc/apache2/sites-available/git.conf
<VirtualHost *:443>
    ServerName debian.home.arpa

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/debian.crt
    SSLCertificateKeyFile /etc/ssl/private/debian.key

    SetEnv GIT_PROJECT_ROOT /var/lib/git
    SetEnv GIT_HTTP_EXPORT_ALL
    ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

    <Directory /usr/lib/git-core>
        Options +ExecCGI
        Require all granted
    </Directory>

    <Location /git>
        AuthType Basic
        AuthName "Git Repository"
        AuthUserFile /etc/apache2/cgi_git.passwd
        Require valid-user
    </Location>
</VirtualHost>

変更を保存したら、モジュールを有効化してApacheを再起動します。

sudo a2enmod cgi
sudo a2ensite git.conf
sudo systemctl restart apache2

2.3 ユーザの設定

初回は以下のコマンドでユーザを設定します。コマンドを実行するとパスワード入力を要求されるので、同じものを2回入力してください。

sudo htpasswd -cm /etc/apache2/cgi_git.passwd ユーザ名

ユーザを追加する場合は、こちらのコマンドを使用してください。-c オプションが存在すると、既存ユーザの情報がすべて消失します。

sudo htpasswd -m /etc/apache2/cgi_git.passwd ユーザ名

3. HTTPS経由での接続

3.1 リポジトリの作成

リポジトリ作成の前に、Gitの設定をしてしまいましょう。以下のコマンドで設定します。クライアントPCも同様に設定してください。

for Server
sudo git config --system init.defaultBranch main
sudo git config --system user.name "$(hostname)"
sudo git config --system user.email user@example.com
for Client
git config --global init.defaultBranch main
git config --global user.name "$(hostname)"
git config --global user.email user@example.com

それでは、リポジトリを作成してHTTPS経由でのアクセスを確認します。以下のコマンドで作成してください。リポジトリ名は my-second-repo とすることにします。

sudo -u www-data mkdir /var/lib/git/my-second-repo
cd /var/lib/git/my-second-repo
sudo -u www-data git init --bare

3.2 クライアントPCでのクローン

リポジトリが作成できたら、クライアントPCでクローンしてみましょう。Git作業用のフォルダ(~/GIT など)で右クリックして、「RabbitVCS Git」から「Clone」を選択します。「URL」欄に以下をコピペしてOKボタンをクリックすると、リポジトリがクローンされます。

クライアントPCは Linux Mint 22.2 Cinnamon Edition を使用しています。

URL
https://debian.home.arpa/git/my-second-repo

Screenshot from 2025-12-16 10-32-40.png

初回接続時は、ユーザ名とパスワードの入力が求められます。事前に以下のコマンドを実行しておくことで、次回以降は自動で認証されます。

git config --global credential.helper store

Screenshot from 2025-12-16 10-35-48.png

Screenshot from 2025-12-16 10-36-12.png

HTTPはPOSTサイズが制限を受けるため、リポジトリの復旧などでGB単位のデータをプッシュすると失敗します。SSH接続などの回避策が必要です。

4. まとめ

どうでしょうか。POSTサイズの制限があるので、管理者はSSH接続ができるようにしておく必要がありそうです。とはいえ、チームメンバにSSH接続させなくて済むことは、メリットだと言えるのではないかと思います。


◀️ 前の記事 次の記事 ▶️
Core 2 DuoでもMintしたい!③SVNサーバよ、セキュアに稼働せよ。 セキュアサーバに、なりたいな「ハイ!rclone crypt」①QEMUでDebianを動かしてみる
0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?