[前編]VS Code Remote-SSHでMacからWindows開発機に接続

基礎知識

生成AIの開発では、コードや文章の編集を行う手元の環境と、画像生成や推論などの重い処理はGPUを積んだサーバー機とを分けたい場面も増えます。

本記事では、VS Codeと拡張機能のRemote-SSHを使って、普段の環境でコード編集を行い、GPUを搭載したWindowsを実行環境としてシームレスに使える構成を目指します。

ファイル共有より VS Code + Remote-SSH がおすすめな理由

生成AIに関する開発では、長時間実行のジョブや大きなファイルを扱うことが多く、手元の環境とAIの実行環境を分けたい場面があります。

共有フォルダ(SMB)や外部ストレージ、クラウドストレージ等での開発環境の共有が手軽ですが、venvやnode_modulesのような「小さいファイルが大量に増減する開発」とは相性が悪く、遅延や競合といった同期の問題が起こりがちです。

パワフルな機材で運用する方法もありますが、裏で生成AIが動いている間に他の処理を行うのは少々不安です。

VS Code + Remote-SSHなら、VS Codeが接続先のVS Code Serverと通信し、操作だけを手元の環境で実行するため開発な快適環境が実現できます。

(英語)Remote Development using SSH

Remote-SSHの導入手順

Remote-SSHは、その名の通りSSHを利用しています。

SSHはリモートマシンに安全に接続するためのプロトコルで、開発関係では馴染みがある方も多いでしょう。 ->リンク

ここでは同じLAN内にあるWindows機にMacから接続する構成を想定します。

VSCodeでRemote-SSHを利用するには、以下の準備が必要です。

  1. サーバー機のIPを固定(DHCPを利用している場合)
  2. Windows機にSSHサーバーを導入

LAN内でIPを安定させる(再接続の手間を消す)

家庭用のWi-FiルーターではDHCP運用が多いと思いますが、SSHはIPが固定のほうが便利です。

可能ならルーター側でIPを固定すると簡単ですが、ルーターの設定が変えられない場合はWindows側でIPアドレスを固定する方法もあります。

やむを得ずDHCPで毎回IPアドレスが変わる場合も、やや不便ですが運用は可能です。

WindowsのPowerShellでipconfigを実行し、利用中アダプターのIPv4アドレスを見ます。

$ ipconfig

...中略...

IPアドレス: 192.168.1.x
サブネット: 255.255.255.0
ゲートウェイ: 192.168.1.1
DNS: 192.168.1.1

ここでは192.168.1.xが目的のIPアドレスになります。

WindowsにOpenSSH Serverを入れてsshdを起動する

OpenSSH導入は様々な方法がありますが、WindowsではOpenSSHサーバーを追加機能として導入し、サービスsshdを起動する方法がおすすめです。

GUIからの設定の場合

GUIからの設定の場合、Windowsの「設定」→「システム」→「オプション機能」を選びます。

オプション機能から「機能を表示」を選びます。

使用可能な機能を表示」を選び、OpenSSHサーバーを導入します。
クライアント(デフォルトで入っている)とサーバーの2種類があるため注意しましょう。

CLIからの設定の場合

PowerShellからの設定も可能で、下記のコマンドを実行します。
慣れていればこちらのほうがシンプルでしょう。

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

実行後に進捗表示が出て、数分待つとインストールが完了します。

sshdサービスの開始

インストール後にサービスsshdを開始します。 合わせて、次回からWindows起動時に自動でサービスが立ち上がるよう設定すると便利です。

Start-Service sshd
Set-Service -Name sshd -StartupType Automatic

動作確認は次のコマンドで、StatusがRunningになっていればOKです。

Get-Service sshd

無事起動していれば、下記のような表示になります。

Status   Name               DisplayName
------   ----               -----------
Running  sshd               OpenSSH SSH Server

sshの疎通確認

Windows側の準備ができたら、MacのターミナルからSSHで接続します。 パスワード入力まで進めばネットワークは問題ありません。

ssh Windowsユーザー名@WindowsのIP

LAN内でも、Windowsファイアウォールで22番ポートが閉じていると接続できません。 プライベートネットワークでの接続や、ファイアウォールの設定で解決する場合があります。 このあたりはAIに相談しながら進めるのもおすすめです。

まとめ

ここれまで来れば、あとはVS CodeのRemote-SSH拡張機能を使って接続するだけです。

Mac側のVS CodeにRemote – SSH拡張機能を入れ、接続先としてWindowsのユーザー名とIP(またはホスト名)を登録します。

拡張機能をインストールした後、Cmd + Shift + P でコマンドパレットを開き、Remote-SSH: Connect to Host… を選択し、登録したホストに接続します。

この構成にすると、venvや巨大ファイルはWindowsローカルに置いたまま、編集体験はMacのままで維持できます。結果として、GPU処理はWindowsで回しながら、普段の執筆・実装は軽快に進められます。

次回、もう少し手間をかけて、パスワード入力の省略し、なお快適な環境を目指します。


タイトルとURLをコピーしました