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?

VMware 上の Debian に Claude Code と GitLab の開発環境を構築する

0
Posted at

Claude Code は、対話欄に質問を入力するだけのサービスではありません。作業ディレクトリーにあるファイル、端末から実行できるコマンド、Git の状態などを使いながら、調査、変更、テストまで実行できます[1]

そのため、VMware Workstation Pro 上に Debian Guest OS を用意している場合は、Claude Code、Git、SSH、ソースコードを Debian 側へ集約すると、Guest OS 自体を独立した AI 開発環境として扱えます。Windows と Debian の間で OneDrive や SharePoint のファイルを共有し、Debian 上の Emacs から編集する構成については既稿で扱っています[2]。本稿では、その Debian Guest OS から Claude Code と GitLab を利用する手順を扱います。

構成は次のとおりです。

Windows Host OS
    |
    | VMware Workstation Pro
    v
Debian Guest OS
    |
    +-- git / ssh
    |
    +-- GitLab repository
    |
    +-- Claude Code
            |
            +-- リポジトリーの調査
            +-- ファイルの編集
            +-- テストの実行
            +-- git diff の確認

GitLab との通信も Claude Code の実行も Debian から行います。Host OS に GitLab 用の秘密鍵や Claude Code の作業環境を用意する必要はありません。

前提となる環境

Claude Code は Debian 10 以降、4 GB 以上のメモリー、x64 または ARM64 のプロセッサーをサポートしています。利用にはインターネット接続が必要です[3]

本稿では次の状態から始めます。

Host OS: Windows
仮想化: VMware Workstation Pro
Guest OS: Debian GNU/Linux
GitLab: GitLab.com または GitLab Self-Managed

Debian のバージョンは次のように確認できます。

cat /etc/debian_version

Claude Code と GitLab を利用するため、Debian に Git と OpenSSH クライアントも用意します。

sudo apt update
sudo apt install git openssh-client curl gnupg

この記事では VM の作成、Debian のインストール、GitLab サーバーの構築は扱いません。Debian Guest OS が起動し、外部ネットワークへ接続できることを前提とします。

Debian に Claude Code を導入する

Debian では Claude Code の公式 APT リポジトリーを利用できます。Anthropic は stablelatest の 2 チャネルを提供しており、通常利用には stable を案内しています[3]

まず署名鍵を保存するディレクトリーを作り、Claude Code の署名鍵を取得します。

sudo install -d -m 0755 /etc/apt/keyrings

sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
  -o /etc/apt/keyrings/claude-code.asc

取得した鍵を確認します。

gpg --show-keys /etc/apt/keyrings/claude-code.asc

公式文書に記載されているフィンガープリントは次の値です[3]

31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE

一致を確認したら stable チャネルを登録します。

echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
  | sudo tee /etc/apt/sources.list.d/claude-code.list

パッケージ情報を更新し、Claude Code を導入します。

sudo apt update
sudo apt install claude-code

インストール結果を確認します。claude doctor は、インストール状態や設定を読み取り専用で診断するコマンドです[4]

claude --version
claude doctor

APT から導入した Claude Code は、Debian の通常のパッケージ更新と同じ経路で更新できます[3]

sudo apt update
sudo apt upgrade claude-code

Claude Code を認証する

Claude Code の初回起動時に認証を行います。

claude

初回起動ではブラウザーによるログインが開始されます。ブラウザーが自動的に開かない場合は c を押すとログイン URL をクリップボードへコピーできます[5]

Debian Guest OS 側でブラウザーを利用しない構成では、表示されたログイン URL を Host OS 側のブラウザーで開くこともできます。認証後にブラウザーへログインコードが表示された場合は、Debian の端末に戻り、Paste code here if prompted の入力欄へコードを貼り付けます。この方式は、ブラウザーから Claude Code のローカルコールバックサーバーへ戻れない環境でも利用できます[5]

認証が完了すると、端末に次の表示が出ます。

Login successful

Claude Code の認証と GitLab の認証は別です。Claude Code へログインしても GitLab へ接続できるようにはならないため、GitLab 用の SSH 鍵を Debian 側に用意します。

Debian から GitLab へ SSH で接続する

GitLab では、アカウントへ SSH 公開鍵を登録して Git リポジトリーへの認証に利用できます[6]

既存の SSH 鍵を確認します。

ls -la ~/.ssh

GitLab 用の鍵がなければ、Debian Guest OS 内で生成します。GitLab では ED25519 が推奨されています[6]

ssh-keygen -t ed25519 -C "<comment>"

標準の保存先を選ぶと、次の 2 ファイルが作成されます。

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub

id_ed25519 が秘密鍵、id_ed25519.pub が公開鍵です。GitLab に登録するのは公開鍵だけです。

cat ~/.ssh/id_ed25519.pub

表示された公開鍵を GitLab の次の画面へ登録します[6]

Edit profile
  -> Access
  -> SSH keys
  -> Add new key

秘密鍵は Debian Guest OS 内に保持します。

GitLab への SSH 接続を確認する

GitLab.com を利用する場合は次のコマンドを実行します[6]

ssh -T git@gitlab.com

GitLab Self-Managed を利用する場合は、組織の GitLab のホスト名へ置き換えます。

ssh -T git@gitlab.example.com

初回接続時には SSH ホスト鍵の確認が表示される場合があります。GitLab.com では公式に公開されているホスト鍵フィンガープリントを、GitLab Self-Managed では管理対象インスタンスが提示するフィンガープリントを確認してから接続します[6]

SSH 認証が通れば、Debian Guest OS から GitLab の Git リポジトリーを操作できる状態です。

GitLab のリポジトリーを Debian に取得する

GitLab のプロジェクト画面から Code を開き、Clone with SSH の URL を取得します。GitLab は SSH を推奨する認証方法として案内しています[7]

GitLab.com の例は次の形式です。

git clone git@gitlab.com:GROUP/PROJECT.git

GitLab Self-Managed ではホスト名が組織の GitLab になります。

git clone git@gitlab.example.com:GROUP/PROJECT.git

取得したリポジトリーへ移動します。

cd PROJECT

接続先を確認します。

git remote -v

Git の状態も確認します。

git status

ここまでで、ソースコード、Git、SSH 鍵、GitLab への接続経路が Debian Guest OS 内にそろいます。

Git リポジトリーで Claude Code を起動する

Claude Code は作業対象のプロジェクトディレクトリーで起動します。公式文書でも、インストール後は作業するプロジェクトの端末を開き、claude を実行する流れになっています[3]

cd ~/src/PROJECT
claude

起動後は、自然言語でリポジトリーの調査を依頼できます。

このリポジトリーの構成を調査して。
まだファイルは変更しないで。

Claude Code は、カレントディレクトリーを基準に必要なファイルや Git の状態を確認しながら作業します。このため、ブラウザーへソースコードを一つずつ貼り付ける必要はありません。

最初から変更を依頼するより、調査と変更を分けると、人間が変更方針を確認する位置を作れます。

この不具合の原因を調査して。
修正が必要な箇所と理由を示して。
まだ変更はしないで。

内容を確認した後に変更を依頼します。

その方針で修正して。
目的達成に必要な範囲だけ変更して。
変更後にテストを実行して、git diff を確認して。
commit と push は実行しないで。

Claude Code がファイルを変更した後は、人間側でも Git の状態を確認できます。

git status
git diff

テスト方法がリポジトリーで決まっている場合は、そのコマンドも明示します。

修正後に ./run_tests.sh を実行して。
失敗したテストがある場合は成功として扱わないで。

Claude Code に実装を任せても、Git リポジトリーの変更履歴は通常の Git として残ります。Claude Code 専用の形式にソースコードを移す必要はありません。

commit と push の境界を決める

Claude Code は端末コマンドを実行できるため、Git の操作も作業対象になります[1]。どこまで実行させるかは、作業開始時に決めておくと確認位置が明確になります。

たとえば、変更とテストまでを Claude Code に任せ、commit と push は人間が行う場合は次のように指定します。

ファイルの変更とテストまで実施して。
git commit と git push は実行しないで。

この場合の流れは次のようになります。

Claude Code
    |
    +-- 調査
    +-- 編集
    +-- テスト
    +-- git diff の確認
    |
    v
人間
    |
    +-- 差分レビュー
    +-- git add
    +-- git commit
    +-- git push
    |
    v
GitLab

後から commit や push まで Claude Code に委譲する場合も、まずこの境界で運用しておけば、どの操作を追加で任せるのかを明示できます。

Claude Code のセッションを継続する

通常の対話セッションは次のコマンドで開始します[4]

claude

最初の依頼をコマンドラインから与えて開始することもできます。

claude "このリポジトリーの構成を説明して"

現在のディレクトリーで直前の会話を継続する場合は -c を使います[4]

claude -c

特定のセッションを ID または名前で再開する場合は -r を使います[4]

claude -r "<session>"

対話画面を開かず、一回の問い合わせ結果を標準出力へ返す場合は -p を使えます[4]

claude -p "このリポジトリーの構成を説明して"

標準入力を渡すこともできます。

git diff | claude -p "この差分をレビューして"

普段の開発では対話モードを使い、定型的な確認だけを -p で実行する、といった使い分けができます。

Debian Guest OS 内に開発環境を閉じる

この構成では、開発に必要な状態を Debian Guest OS 内へまとめられます。

要素 配置先
ソースコード Debian Guest OS
Git Debian Guest OS
GitLab 用 SSH 秘密鍵 Debian Guest OS
Claude Code Debian Guest OS
Claude Code の認証状態 Debian Guest OS
GitLab との Git 通信 Debian Guest OS から実行

Host OS の役割は VMware Workstation Pro で Debian を実行することです。Claude Code のブラウザー認証時に Host OS のブラウザーを利用しても、リポジトリーの操作主体は Debian 側のままです。

既稿の構成と組み合わせる場合は、OneDrive や SharePoint の同期は Windows、Linux の編集・開発環境は Debian という分担を維持できます[2]。Emacs、Git、Claude Code を Debian 側で使い、組織管理のファイル共有が必要な部分だけ VMware Shared Folders を介して Windows 側へ接続できます。

まとめ

VMware Workstation Pro 上の Debian Guest OS から Claude Code と GitLab を使う場合、Claude Code だけを特別な場所へ置く必要はありません。Git、SSH、GitLab のリポジトリーと同じ Debian 環境へ Claude Code を導入し、リポジトリールートから claude を起動します。

GitLab 用の SSH 秘密鍵も Debian 側で管理し、GitLab との clonepullpush は通常の Git として扱います。Claude Code はその作業ディレクトリー上で調査、編集、テストを実行します。

最初の運用では、Claude Code に変更とテストまでを任せ、git diff を確認した後の commit と push を人間が実行する境界にすると、既存の GitLab 運用を変えずに Claude Code を追加できます。VM の内部に開発環境を集約することで、Debian Guest OS をそのまま Claude Code と GitLab の作業端末として利用できます。

参考文献

  1. id774, Claude Code を継続的な業務環境へ変える(2026-07-20). https://blog.id774.net/entry/2026/07/20/5112/
  2. id774, VMware Workstation Pro の Debian から OneDrive と SharePoint のファイルを Emacs で編集する方法. https://qiita.com/ynakayama/items/e43372b80a207316d212
  3. Anthropic, Advanced setup. https://code.claude.com/docs/en/setup
  4. Anthropic, CLI reference. https://code.claude.com/docs/en/cli-reference
  5. Anthropic, Authentication. https://code.claude.com/docs/en/authentication
  6. GitLab, Use SSH keys with GitLab. https://docs.gitlab.com/user/ssh/
  7. GitLab, Clone a Git repository to your local computer. https://docs.gitlab.com/topics/git/clone/
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?