💬

Cursorでサーバーに接続してユーザーを切り替える

に公開

はじめに

VScodeないしCursorにはリモートSSHという拡張機能があり、サーバーに接続することができます。
ただ、接続先のサーバーに接続した上でエディター上で別ユーザーを変えようと思うと少し工夫が必要になったので、その備忘録となります。
(個人ユーザーからwww-dataに切り替えるなど)

自分はCursorを使用しているので、Cursorで解説します。

接続先サーバーにCursorを接続する

まずは接続先サーバーにCursorで接続できるようにします。
ユーザー切り替えはまだできません。

まず、~/.ssh/configに接続設定を書きます。

~/.ssh/config
Host remote-server
  HostName xxxxxxxx
  User test-user
  IdentityFile ~/.ssh/id_rsa

ターミナルで対象のサーバーに接続します。
接続先で自身のユーザーディレクトリに入ると思います。
この状態でCursorで接続できるように.cursor-serverディレクトリを作成します。
もし、作成権限がなかったら権限を与えてから作成します。

ssh remote-server
pwd # /home/test-user

# 必要に応じて実行
sudo chown -R test-user:test-user /home/test-user

mkdir .cursor-server

これでtest-userとして接続できるようになったかと思います。
この時点では当初の目的である、Cursorで別ユーザーで切り替えるということができていないので、次にその設定を実施します。

ここで一度、cursorにてリモート接続しておきましょう。
接続しないと別ユーザーでいきなり接続することはできません。

Cursorで接続時に別ユーザーに切り替える設定

Cursorでサーバーに接続する際にユーザーを切り替えるコマンドを実行します。
コマンドを実行するには、Cursorのグローバル設定に許可する設定を追加します。

/Users/xxx/Library/Application Support/Cursor/User/settings.json
{
  "remote.SSH.useLocalServer": true,
  "remote.SSH.enableRemoteCommand": true
}

次に冒頭で設定したsshのconfigにユーザーを切り替えるコマンドを追加します。

~/.ssh/config
Host remote-server
  HostName xxxxxxxx
  User test-user
  IdentityFile ~/.ssh/id_rsa
  RemoteCommand su www-data # 追加

これで設定が全て完了しました。
CursorでリモートSSHで接続したら、www-dataでファイル操作ができるようになっているかと思います。

終わりに

CursorのリモートSSHで別ユーザーで接続できる設定の解説でした。
プロジェクトによって権限管理をしているところだと都度、www-dataやrootに切り替えないといけないようになっているかと思いますが、この設定でエディター上でもファイル操作ができるようになります。

Discussion