VSCode Remote ContainersでGitにSSH接続でpushする (Windows)

VSCode Remote ContainersでGitにSSH接続でpushする (Windows)

VSCode Remote Containers拡張機能を使うとdockerのコンテナに接続できます。

開発環境として使用する場合、GitにSSH接続する必要があります。
しかし、コンテナ内に開発者依存のSSHキー情報を置くわけにはいきません。

Remote Containers拡張機能に、コンテナ接続元の端末のSSHキー情報を転送する機能が備わっているので設定しましょう。

まずはdockerコンテナにGitをインストール

コンテナ内でgitコマンドを叩いてみて、git入ってないよ!って言われる場合は、gitをインストールしましょう。
ただし、Remote Containers拡張機能で使用するので、通常の手順ではなくdevcontainer.jsonにインストールコマンドを記述してコンテナ接続時に自動でインストールします。

devcontainer.json

Remote Containers拡張機能でコンテナに接続すると、ルートディレクトリに.devcontainerという名前でディレクトリが作成され、中にdevcontainer.jsonファイルが作成されます。

ファイルに既にインストールコマンドがコメントアウトされた状態で記載されています。
以下のとおり、コメントを解除します。

// Uncomment the next line to run commands after the container is created - for example installing git.
"postCreateCommand": "apt-get update && apt-get install -y git",

git configの設定

git上のuser.nameやuser.emailを設定します。
ルートディレクトリに.gitconfigファイルを作成します。
すると、自動でコンテナ接続時にファイル記載の内容が転送されるので、以下のように記載します。

git config --global user.name "任意のユーザー名"
git config --global user.email "任意のメールアドレス"

ここまでの設定により、gitコマンドが使用できるようになりローカル内でgitが使用できるようになります。
続けてSSH接続によるリモートリポジトリにアクセスできるようにしていきましょう。

リモートリポジトリへSSH接続 (Windows)

SSH接続でgit pushやgit pullをするには、SSHキーが必要です。
SSHキーの作成・登録方法はここでは省略します。

一般的にSSHキーはユーザーディレクトリ直下の.sshディレクトリに保存されています。
以下の場所にキーが存在していることを確認します。

%HOMEPATH%\.ssh

ssh-agentを有効にする

ssh-agentを有効にしてSSHキーを追加すると、接続時にコンテナ内に自動でSSHキーが転送されます。
PowerShellを管理者権限で起動して、以下コマンドを実行し、ssh-agentを有効にします。

Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent

SSHキーをssh-agentに追加する

使用するSSHキーをPowerShellから以下のコマンドでrsaファイルを追加します。
ディレクトリやキーの文字列は置き換えてください。

ssh-add $HOME/.ssh/[任意の文字列]_rsa

以上で設定は完了です。
Remote Containersでコンテナをrebuildしてから、正常に動作するか確認しましょう。

プログラミングカテゴリの最新記事

%d人のブロガーが「いいね」をつけました。