本文へ移動

Sublime TextでSSH先のファイルを編集する仕組みと注意点

技術

リモートサーバーのrmateからSSHのリモートポート転送を通じてMacのSublime Textへファイルを開く構成図

リモートサーバーの設定ファイルや短いスクリプトを、手元のエディターで編集したいことがあります。Sublime Textのrsubと、サーバー側のrmateを組み合わせると、SSHのリモートポート転送を経由してファイルを開けます。

2026年10月8日改訂。旧記事のダウンロード先と表記を修正し、接続の仕組み・適用範囲・現在の代替手段を追記しました。

古いプラグインであることを確認する

Package Controlのrsubページでは、最終更新が2017年と表示されています。現在のSublime Textでの互換性を一律に保証するものではありません。既存環境で使う場合も、まず検証用ファイルで開く・保存する動作を確認します。

新しくプロジェクト全体のリモート開発環境を組む場合は、Visual Studio CodeのRemote – SSHなど、フォルダー・実行環境まで扱う方式も比較してください。単一ファイルを開く仕組みと、リモート開発環境は区別します。

役割と接続方向

  • 手元のMac:Sublime Textとrsubが編集を担当します。
  • リモートサーバー:rmateが対象ファイルを開く要求を送ります。
  • SSHのリモートポート転送:サーバー側のローカルポートを、Mac側のrsubへつなぎます。

以下の52698はrsub/rmateで使用するポートの例です。サーバー側・Mac側ともに127.0.0.1での接続を使い、エディターの待受ポートを外部へ公開しません。

rsubとrmateを準備する

Mac側でPackage Controlを導入済みなら、Sublime Textのコマンドパレットを開き、Package Control: Install Packageからrsubを選びます。rmateの公式リポジトリにも、この組み合わせの設定方法が記載されています。

サーバー側のrmateは、公式リポジトリのrmateスクリプトを確認してから配置します。取得したスクリプトを、そのまま管理者権限で実行する手順にはしません。次は、内容を確認したrmateファイルが現在のディレクトリにある場合の、ユーザー領域への配置例です。サーバーで実行します。

mkdir -p "$HOME/.local/bin"
install -m 755 rmate "$HOME/.local/bin/rmate"

HOMEは既存のホームディレクトリの値を参照します。実装には/dev/tcpを利用できるbashが必要です。配布元の要件も確認してください。

SSHの転送を開く

Macのターミナルで実行します。devuserはリモートのログインユーザー、server.example.comは接続先の例なので、自分の環境の値に置き換えます。

ssh -o ExitOnForwardFailure=yes \
  -R 127.0.0.1:52698:127.0.0.1:52698 \
  devuser@server.example.com

-Rはリモート側に転送の入口を作る指定です。接続先サーバーの127.0.0.1:52698へ来た通信が、SSHを通ってMacの127.0.0.1:52698へ届きます。転送方向はOpenSSHのマニュアルでも確認できます。

接続したサーバーで、編集するファイルを指定します。project/example.pyは検証用ファイルのパスの例です。-Hで接続先を明示しています。

"$HOME/.local/bin/rmate" -H 127.0.0.1 -p 52698 project/example.py

保存前に確認すること

保存はリモート側の実ファイルを書き換えます。検証用のコピーやGitで変更を管理し、サーバーの本番設定を直接試行錯誤する用途には使わないようにします。

開けない場合は、Mac側のrsubの起動、SSHの転送許可、ポートの競合、対象ファイルの権限を順に確認します。SSH接続を閉じると転送も終了するため、編集・保存を終えてから接続を閉じてください。

関連記事

カテゴリー
アーカイブ

導入・開発のご相談

検査の自動化、品質予測、工程条件の最適化。
課題の整理からご相談ください。

お問い合わせ