LoginSignup
2
5

More than 5 years have passed since last update.

rootがなくてもsshfsを使えばLinux上のファイルをWindowsからアクセスできるよ(踏み台がいるけど)

Last updated at Posted at 2016-12-15

タイトルで全てなのですが、私みたいなWindows大好きな人は、いついかなる時でもLinux上のファイルにWindowsからアクセスしたいものです(主にGUIによる快適なファイル編集環境のため)。

しかし、sshでログインできる先がいつでもSAMBAなどを設定できるとは限りません。もしかするとsudoすらないことも多いです。
そんな場合には、sshfsで解決しているのですが、いつもやり方を忘れてイチから調べなおしたりするのがいい加減に面倒だったのでメモがてら書いておきます。

構成としては

<手元のWindows機> --- <踏み台Linux機> --- <接続先のLinux機>

という感じです。

  1. まず、踏み台にするLinux機を用意します。仮想環境でも良いかと思いますが、私はいつもsshログインする時に踏み台にする実機があるのでそこを使っています。重要なのは、踏み台Linux機はsudo権限を持っていて好きに設定できるようにすることです。
  2. 手元のWindows機から、踏み台Linux機へSAMBAを設定して、踏み台Linux機のフォルダを手元のWindowsからアクセスできる状態にします。
  3. 踏み台Linux機から接続先のLinux機へsshでログインできる状態にします。
  4. 踏み台Linux機から接続先のLinux機へsshfsを使ってマウントします。このコマンドいっつも忘れるのですが、sshfs -o allow_other,follow_symlinks,idmap=user <username>@<server>:<server_dir> <my_dir>です。/etc/fuse.confuser_allow_otherを追加するの忘れないように。
  5. そうすると、手元のWindows機から踏み台経由で接続先のLinux機のフォルダを読み書きできるようになります。

状態としては以下のようになってますね。

<手元のWindows機> --[samba]-- <踏み台Linux機> --[sshfs]-- <接続先のLinux機>

ほんとはbash on windowsがsshfsをサポートしていれば踏み台を用意する必要はないんですが・・・仕方ない。
あと、winsshfsみたいなのもあったのですが、うまく動きませんでした。

アンマウント

何かの拍子にssfhsがつながらなくなったり変なことになった時にアンマウントするには

$ fusermount -u <my_dir>

/etc/fuse.confが開けない

Ubuntuとかを踏み台にすると

fusermount – failed to open /etc/fuse.conf – Permission denied

みたいなエラーが起きることがあるが、この場合は、

$ sudo gpasswd -u <username> fuse

とfuseグループに追加しないといけない。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5