LinuxサーバーなどのリモートマシンにSSHで接続してファイルを編集したい場合、ターミナル画面上でvi(vim)で編集するのが一般的ですが、viは操作方法がが特殊なため使い慣れていないと編集しづらく感じることがあります。
かといって、編集したいファイルを毎回わざわざローカルにダウンロードして、テキストエディターで編集してアップロードするのは面倒です。
そこでここでは、SSH接続したリモートマシン上のテキストファイルをローカルマシン上の使い慣れたテキストエディターで直接編集する方法を紹介します。
なお、ここではリモートマシンはLinux、ローカルマシンはWindows、テキストエディターはVisual Studio Codeを想定しています。
目次
WinSCP経由で編集
リモートマシンにSSH接続してファイル転送するときのWindows向けの定番ツール「WinSCP」では、SSH接続したリモートマシン上のファイルをWinSCP内臓のテキストエディタや任意のテキストエディターで直接編集することができます。
WinSCPの入手は、以下の公式サイトからどうぞ。(WinSCPのインストール方法や、リモートマシンへSSH接続する設定方法は、ここでは割愛します。)
WinSCPでリモートマシンのファイルを外部テキストエディターで直接編集する手順は、次のとおりです。
WinSCPを起動して接続画面左下の「ツール」から「環境設定」を選択します。
環境設定画面が表示されるので、画面左側のメニューから「エディタ」を選択して、画面右側の「追加」をクリックします。
「エディタの追加」画面が表示されるので「外部エディタ」を選択して、その下の「参照」ボタンをクリックして、利用したいテキストエディターの実行ファイルを指定し「OK」をクリックします。
環境設定画面に戻るので「エディタの設定」欄で追加したエディターを一番上に移動させてから「OK」をクリックします。
以上で、WinSCPでSSH接続したリモートマシン上のテキストファイルをダブルクリックすれば、設定したテキストエディターが開いて直接編集できるようになっているはずです。
VSCodeからSSH接続して編集
コードエディターとして人気のある「Visual Studio Code(以下、VSCode)」なら、拡張機能をインストールすることで、リモートマシンにSSH接続して、リモートマシン上のファイルを直接編集できます。
VSCodeの入手は、以下の公式サイトからどうぞ。(VSCodeのインストール方法や、基本的な使い方についてはここでは割愛します。)
Download Visual Studio Code - Mac, Linux, Windows
VSCodeからリモートマシンにSSH接続して、リモートマシン上のファイルを直接編集する手順は、次のとおりです。
VSCodeを起動して、画面左側のメニューから「拡張機能」ボタンをクリックし、拡張機能の画面で検索ボックスに「SSH FS」と入力します。
検索ボックス下に候補が表示されるので「SSH FS」の「インストール」ボタンをクリックし、拡張機能をインストールします。
インストールが完了したら、画面左側のメニューから「SSH FS」ボタンをクリックして、SSH FSの画面で「Configurations」から「Open settings and edit configurations」ボタンをクリックします。
「Configurations」画面が表示されるので「Add」ボタンをクリックします。
新しい接続先の作成画面が表示されるので「Name」欄にわかりやすい接続先の名前を入力して「Save」ボタンをクリックします。(なお、名前に日本語は使用できません)
接続先の情報を入力する画面が表示されるので、以下の項目を入力し画面下部の「Save」ボタンをクリックします。
- Host:接続先のIPアドレス
- Port:接続ポート
- Root:ログイン時のディレクトリ
- Username:ログインユーザー名
- Password:パスワード認証の場合は、パスワードを入力
- Private key:鍵認証でログインする場合は、秘密鍵を指定
一般ユーザーでログイン後に自動的にrootに昇格したいときは、以下の情報も入力します。(なお、SFTP Commandに入力するパスは、SSHサーバーの環境により異なり、以下はAlama Linux9の場合の入力例です。)
- SFTP Command:/usr/libexec/openssh/sftp-server
- SFTP Sudo:Default
接続先を追加したら、SSH FSの画面の「Configurations」欄から、接続先の横に表示される「Add as Workspace folder」ボタンをクリックすることで、SSH接続が開始されます。
正常にSSH接続できれば「エクスプローラー」のワークスペースに接続先のディレクトリが一覧表示され、ファイルを選択すれば直接編集できます。
接続を終了するときは、SSH FSの画面の「Connections」欄から、終了する接続先の横にある「Disconnect」ボタンをクリックします。
ファイル監視はオフに
VSCodeからリモートマシンにSSH接続してファイル編集を行っていると、VSCodeのファイル監視機能が原因でリモートマシンに負荷をかけてしまう場合があるので、VSCodeのファイル監視は無効に設定しておくとよいでしょう。
手順は、次のとおりです。
VSCodeの「ファイル」メニューから「ユーザー設定」>「設定」を順に選択します。
設定画面が表示されるので「設定の検索」欄に「Watcher Exclude」と入力して、Watcher Excludeの設定項目の「パターン追加」をクリックします。
除外パターンに「**」と入力して「OK」をクリックします。
最後に、設定を反映させるためにVSCodeを再起動します。
以上で、ファイル監視機能がオフが無効になり、リモートマシンに余計な負荷が掛かることはなくなるでしょう。
なお、ファイル監視機能をオフにすると、gitのファイル変更状況がリアルタイムで反映されなくなるので、自身でコミットなどをするときに、手動で「最新の情報に更新」して、変更があったファイルを確認する必要があります。
あとがき
普段Windowsマシンで作業することが多いと、たまにリモートのLinux環境にSSH接続してviでファイル編集するのがとても煩わしく感じますが、ここで紹介した方法で使い慣れたテキストエディターで編集できるようにしておけば、そのような煩わしさも軽減できるでしょう。