あかり描像のブログ

思ったことや学習記録を適当に書いていきます。お気軽にコメントください

SSH 先の Linux を Windows11 上の explorer から見れるようにする

リモートの Linux サーバーを Windows 11 の explorer にマウントする方法を模索しました。

VSCode の Remote-SSH ではリモートサーバー上で開いたディレクトリのツリー構造を可視化してくれますが、それを Windows explore でもやりたいなと思いました。


結論から言うと、Windows explorer から SFTP (SSH File Transfer Protocol) 接続を行うのは厳しくて、WSL2 で Nautilus 等のファイルマネージャーを動かすのが一番早いと思います。

ただし、explorer を諦めれば似たようなことは実現可能であり、また、とある条件の下であれば Windows explorer にマウントする手段もいくつかあるようです。
そこで、今回は Nautilus による方法とその他の代替案 5 つを、個人的に有用だと思う順に紹介します。

正直この機能は Windows に標準搭載されててほしいレベルです。Microsoft さんよろしく頼みます。もしかしたら既にあるのかもしれませんが。。。

色々分かり次第この記事に追記していきます。
こんな方法あるよっていうのがあったら教えて頂けるとうれしいです。

環境

  • Windows11 Pro 23H2
  • WSL2

WSLg の使えない Windows10 の名残で VcXsrv を使っていたりすると環境がごちゃごちゃになったり、Ubuntu 20.04 LTS の方を使うと面倒な設定をしないといけなかったりするので、できるだけ新しい環境を使う方が良いかと思います。
ただし、Ubuntu 24.04 LTS は現状対応していないソフトもそこそこあるので、ここでは間を取って 22.04 を使うものとします。

方法 6 つ

WSL2 + Nautilus

初っ端から趣旨とはずれますが、一番簡単なので...

サーバーが Linux ならクライアントも Linux の方が結局楽じゃんという身も蓋もない話です。

ただし、あくまで Linux 上の X Window を動かしての話なので、例えば Windows explorerNautilus の間で D&D みたいなことはできません。OS が Windows と WSL でバッファを共有している訳ではないので当然といえば当然ですが、残念。
まぁ、Nautilus を 2 つ開いたらそれらの間では D&D できるので、あんまり問題ではないのですが。いい加減 CUI に慣れたいですね。


デフォルトだと GUI レンダリングがおかしくなるので、まず C:\Users\[ユーザー名]\.wslconfig に以下を追記します。(.wslconfig がない場合は新規作成します。) *1

.wslconfig

[system-distro-env]
WSLG_USE_MSTSC=false
WESTON_RDP_WINDOW_SNAP_ARRANGE=true
WESTON_RDPRAIL_SHELL_LOCAL_MOVE=true

;disable GPU in system-distro
LIBGL_ALWAYS_SOFTWARE=1

な…何を言ってるのかわからねーと思うが、俺も何をしてるのかわからなかった...

remix-yh.net

↑ ここやここに貼ってある WSLg の issue を参考。ソフトウェアレンダリングをオン、つまり GPU を使わせないという事。


さて、.wslconfig を書き換えたら、WSL を再起動し、

wsl --shutdown

適当な Linux ディストリビューションNautilus をインストールします。
ここでは Ubuntu 22.04.3 LTS を使うとします。

sudo apt install nautilus -y

これで Nautilus が使えるようになるはずです。

nautilus

Nautilus は標準で SFTP が使え、~/.ssh/config も読み込んでくれるため、かなり使い勝手が良いです。まぁ、Linux ユーザーからしたら何を今更って感じなんですが...

左側ペインに「+ Other Locations」とあるので、それを押し、右下に出てくる「Connect to Server」に

sftp://[ユーザー名]@[ホスト名]

などと書いて「Connect」を押せばばっちぐ~。

Trouble Shooting

bakkyalo.hatenablog.jp

【2024/06/25 追記】内容が嵩張ってきたので記事を分離させることにしました。

何か変だぞってなった場合は ↑ こちらをご覧いただけると解決できるかもしれません。

WinSCP

winscp.net

これも Windows explorer から見るという趣旨からズレそうですが、かなり便利そうです。
恐らく私が求めていたものにもっとも近いソリューションがこのソフトな気がします。こちらは Windows にそのまま入るので、ローカルの Windows の規定のソフトでリモート先のファイルを直接開けるのが魅力です。

公開鍵認証、ProxyJump、両方いけます。

踏み台サーバーを経由してWinSCPでSSH接続する - Webmasters' Journal
やり方は ↑ この辺りを読むとよいです。

OpenSSH 形式の秘密鍵 (id_rsa とか) には対応していないようで、接続時に PuTTY 形式 (.ppk) に自動で変換されますが、上書きはされないのでご安心を。


「表示」→「環境設定 (P)」 から、コマンダー, エクスプローラの 2 種類のインターフェースを選択可能です。

インストール時にも訊かれますが、ここでも設定できます。

RaiDrive

www.raidrive.com

安全性はよく知りませんが、強そうなのでここに書いておきます。*2

GCPAWS, Azure といったクラウドをマウントする感じのツールらしいです。SFTP は勿論, Google Drive や OneDrive, Mega 等も行けるっぽいです。

2024年7月現在、無料版では合計 8 ドライブまでマウント可能で、以下は書き込みも可能。(他は読み取り専用)

できることは多いけどマウントの速度は下の SFTP Drive よりは遅め。

SFTP Drive

www.nsoftware.com


公開鍵認証、パスワード認証、どちらでも使えます。

ただし、同時に 2 つ以上のサーバーをマウントするには Professional Edition という有料版が必要になる上、踏み台サーバー (jump server) を超えての SFTP 接続は対応していないっぽいです。


導入自体は上の公式サイトからインストーラーをダウンロードしてくるとよいでしょう。

導入時に名前や所属が訊かれますが、適当でもバレないでしょう。私は出身大学の学生って設定でハンドルネームを設定しました。メアドは空欄でもいけたので、もしかしたら名前すら要らないのかも。

WinFsp + SSHFS-Win

github.com

github.com

公開鍵認証、パスワード認証、どちらも可能。2 台以上の同時マウントも可。
しかし、これも jumpserver を超えての SFTP 接続は厳しいです。(ただし可能性は感じます)

Windows 標準の OpenSSH ではなく内包されている ssh.exe を使用しているようで、C:\Users\[ユーザー名]\.ssh\config によるホスト名の設定は読み込めない。
けれども、秘密鍵C:\Users\[ユーザー名]\.ssh\id_rsa から読み込んでくる。正直謎。

Cygwinssh をマージしてうまくいったという強そうな人もいるが、私には何を言っているのか分からない。


【2024/10/02 追記】
%USERPROFILE%\.ssh\config は読めるようになっていたそうです。これにより、多段 Jump もできるようになっています。(2020 年の時点でそうだぞ... お前の目は節穴か?)
しかし、sshfs-win-3.7.21011.msi を入れ直して実際にやってみたらパスワードを求められ、公開鍵認証を使うみたいな選択肢が与えられず、issue を読み漁ってもよくわからなかったので (←)、恐らく「多段 Jump + パスワード認証」はできても「多段 Jump + 公開鍵認証」は難しそうです。 (しかし可能性は感じます)


導入や使い方についての詳細は SSHFS-Win の方の README を参照のこと。やることは該当する .msi を入れるだけです。

マウントするには explorer を開いて 「PC」を右クリック、「ネットワーク ドライブの割り当て」を押して、

\\sshfs\[ユーザー名]@[ホスト名]

的なフォーマットを入力すればok。公開鍵認証の場合は

\\sshfs.k\[ユーザー名]@[ホスト名]

Dokany + Winsshfs

github.com

github.com


名前が紛らわしいですが、Winsshfs は上の「SSHFS-Win」の源流的なもので、2024 年現在では obsolete かもしれません。

パスワード認証さえ使えればいいという場合はこれが使えます。

2024年2月現在、公開鍵認証が使えないので (OpenSSH には対応してませんというエラーが出る)、公開鍵認証で ssh したい時は上の SFTP Drive か、「WinFsp + SSHFS-Win」を使うのが良いと思います。

こちらも同時に 2 台以上のサーバーをマウント可能です。


日本語の情報も多いので、導入方法や使用方法についてはそちらをご参照ください。

*1:こういうファイル形式を ini 形式というそうですが、はてなブログシンタックスハイライトにそれっぽいのがなかった...のですみません。 「;」の行はコメントアウトです。

*2:オープンソースと謳っておきながら、GitHub で見れるのが翻訳用のリポジトリしかないという...。→ RaiDrive · GitHub
韓国製のソフトで、Reddit 等では変な話はあまり聞きませんが、少しは警戒していた方が良いような気はしています。