LoginSignup
2
3

wsl2上のDockerコンテナにssh接続してCursorエディタを使う

Last updated at Posted at 2023-12-14

はじめに

WindowsでCursorエディタを使いたいけど「Dev Containers」が使えないのでDockerコンテナ上で開発できないし、けどどうにかして使いたいなぁということで、色々と調べた結果、最終的にsshで接続してCursorからDockerコンテナ内に接続できたので、記念に初記事を投稿します。
(2024/01/09 追記)
バージョン:0.22.0 から「Dev Containers」に対応したようです!
試してみましたが、無事にコンテナの中に入れることを確認しました。
以降、Cursorでコンテナの中に入るためだけにssh接続する環境を作る必要は無さそうです。

wsl2上のDockerコンテナにssh接続する環境を作成

1. ssh公開鍵の作成(WSL)

ssh-keygen -t ed25519 -f .ssh/(公開鍵名)

2. Dockerコンテナの作成(WSL)

FROM ubuntu:20.04

USER root

# SSHサーバーをインストールする
RUN apt-get update && apt-get install -y \
    nano \
    openssh-server \
    && rm -rf /var/lib/apt/lists/*

# SSHでrootログインを許可する
RUN mkdir -p /run/sshd
RUN echo 'root:password' | chpasswd

# 公開鍵をコンテナにコピーする
COPY .ssh/ssh_test.pub /root/.ssh/authorized_keys

# 公開鍵のパーミッションを設定する
RUN chown root:root /root/.ssh/authorized_keys && \
    chmod 600 /root/.ssh/authorized_keys

# SSH設定を更新する
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config

# SSHサーバーを起動する
CMD ["/usr/sbin/sshd", "-D"]
docker-compose.yml
version: '3.9'

services:
  develop:
    build:
      context: .
    container_name: SSH_TEST
    tty: true  # コンテナ維持
    restart: always  # PC起動時に自動でコンテナ起動
    ports:
      - "2224:22"  # ホストの2224番ポートをコンテナの22番ポートにマッピング

3. 公開鍵をローカルPCへ持ってくる

C:\\Users\\(ユーザー名)/.ssh/

4. configファイルの設定(存在しない場合は新規作成)

C:\\Users\\(ユーザー名)/config

Host ssh_test
  HostName localhost  ※DockerコンテナのIPアドレス(localhostでOK)
  Port 2224      ※Dockerコンテナのポート番号
  User root    ※Dockerコンテナのユーザー名
  IdentityFile ~/.ssh/ssh_test  ※転送した公開鍵のパス

5. configファイルと公開鍵の権限変更(権限が広すぎるというエラーを回避)

icacls config /reset
icacls config /inheritance:r
icacls config /grant:r "$($env:username):(R)"

icacls.exe .\ssh_test /inheritance:r
icacls.exe .\ssh_test /grant:r "$($env:USERNAME):(R)"

Cursorエディタから接続

  1. Cursorエディタのコマンドパレットで「Remote-SSH:Connect to Host」を選択し、configファイルに追加した接続先を選択
  2. パスワードを求められるのでssh公開鍵作成時に設定したパスワードを入力
  3. 接続に成功するとこんな感じでコンテナ内に入れます↓

スクリーンショット 2023-12-16 083725.png

おわりに

私の環境では上記の方法でCursorでDockerコンテナ内に接続することができました。
どなたかのお役にたったら幸いです。

最後まで御覧いただきありがとうございました。

2
3
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
2
3