【Win/VS Code】VS Codeでリモートファイルをroot権限で編集する

その他

1 はじめに

本記事は、 Windows上のVS CodeでLinuxのファイルをリモート編集する方法を、
備忘録として整理したものです。

VS Codeからのリモートサーバー接続は、一般ユーザーとして接続されます。
実際にリモート編集を行いたいのは、
“/etc”ディレクトリ下のコンフィグファイルなどroot権限が必要なファイルであることが
多いかと思います。

root権限が必要なファイルを直接編集できないのであれば、
VS Codeでリモート編集するまでもなく、
Sambaでの共有ファイルをローカルに編集するほうがずーっと良いかなと思っています。

ですので、文章量は少ないですが、root権限が必要なファイルを編集する方法を示すことが
本記事のメインのテーマとなります。

2 VS Codeの拡張機能“Remote SSH”

VS Codeのリモートファイル編集は、“Remote SSH”という拡張機能を利用します。

2.1 ssh_config

事前にPowerShell SSHの設定を行い接続できるようにしておいた方が、
理解しやすいのかもしれません。

VS Code“Remote SSHのConfigは、
7.X系のWindows PowerShell SSHの“ssh_config”と全く同じものを共有することができます。

既にPowerShell SSHのConfig設定が済んでいれば、
VS Code Remote SSHのConfig設定を再度行う必要はありません。

ちなみに、Windows 10/11標準搭載のPowerShellはバージョン5.1で、SSHは使えません。

ssh_configの詳しいことについては、次のページをご覧ください。
manページ - SSH_CONFIG

また、PowerShell SSHの使い方については、次のページをご覧いただければと思います。
【PowerShell SSH】Windows PowerShellから秘密鍵を使うSSHの起動
| すたっくおーばーふろー 

2.1.1 ”ssh_config”のファイルパス

ssh_config”設定ファイルのデフォルトのパスは、
Linuxと同様Windowsサインイン・アカウントの、
ホームパス直下の”.ssh”フォルダーの下で、ファイル名は”config”となっています。

2.1.2 ”ssh_config”ファイルの構成

  configファイルの構成は、下に示すようになっています。 

よく使われると思われるキーワードを表2.1-1に示します。

図2.1-1に”ssh config”の記述例を示します。

2.2 拡張機能“Remote SSH”のインストール

VS Code左側ペインの拡張機能アイコン(四角とひし形が4つ集まったアイコン)をクリックして、
remote ssh”で検索します。

remote ssh”関連の拡張機能が表示されます。
その中から“Remote Development”を選択してインストールします。
“Remote Development”は、いくつかの関連機能もパッケージングされていますので、
単独で選択して複数個インストールするよりも、良いかと思います。

2.3 リモートファイル編集

2.3.1 リモートサーバーへの接続

VS Codeを開いた時に左側に表示されるディスプレイアイコンをクリックすると、
図2.3-1に示すように設定済みのリモートサーバーリストが表示されます。

ディスプレイアイコンが表示されていない時は、左側最下端に表示されている歯車アイコンや、
拡張機能アイコンなどをクリックしてみてください。

接続したいリモートサーバーを選んで接続します。

接続先サーバーを認識すると、図2.3-2に示すように画面上部でパスフレーズ入力が促されます。
パスフレーズ入力が完了すると、接続は完了です。

2.3.2 リモートファイルのオープン

VS Code画面の真ん中ペインにある“Start”メニューより、ファイルのオープン方法を選択し
ます(図2.3-3参照)。

たとえば、“Open Folder…”を選択すると、図2.3-3に示すように表示されます。

図2.3-4にファイルを開いた時の一例を示します。

3 リモートファイルをroot権限で編集

VS CodeでリモートサーバーにSSH接続した場合、接続ユーザーは一般ユーザーになります。
ですので、たとえばroot権限が必要な“/etc”ディレクトリ下のコンフィグファイル等を
編集しようとしても編集することができません。

暫定的な解決方法として、下に示すような方法がWebに上げられています。

https://github.com/microsoft/vscode-remote-release/issues/1688#issuecomment-1708577380

ここで示されている方法は、Google GeminiなどのAIツールからでも知ることができます。

方法を要約すると、次のようになります。

まず接続先サーバーの“~/.bashrc”、または“~/.bash_aliases”に次のエイリアスを追加し、
source ~/.bashrc”で反映させます。

VS CodeでリモートサーバにSSH接続したら、
たとえば“/etc/httpd/conf/httpd.conf”を編集するならば、
VS Codeのターミナルで次のようにコマンドを打ち込みます。

以上

本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。

少しでも役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ

 

コメント

Add A Knowledge Base Question !

You will receive an email when your question will be answered.

+ = Verify Human or Spambot ?

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