sshfsは便利

普段、自宅では Nextcloud を使ってます。

Nextcloud は、複数の PC から同じファイルを参照できて、履歴管理もできるのでユーザーデータの管理に適していると思ってますが、ものによっては履歴管理不要なデータもあったりします。

というか自宅利用だと、大半が履歴不要だったり。
こんな中困るのが、履歴不要だけどよく更新されるファイル。

履歴不要なファイル用に、別途 Nextcloud サーバの空きスペースをマウントすることにしました。

ネットワーク経由でのマウントとなると NFS や WebDAV があるが、SSHFS というものがあることを発見。

サーバと SSH で接続できれば、SFTP みたいに使えるお手軽マウントだったので試してみました。

クライアント側にツール導入。

$ sudo apt update -y && sudo apt upgrade -y && sudo apt install -y sshfs

マウントポイントを作成して権限付与。

$ sudo mkdir $HOME/sshfs-192.168.9.999
$ sudo chmod 0700 $HOME/sshfs-192.168.9.999
$ sudo chown xxx $HOME/sshfs-192.168.9.999

マウントしてみる。(リモートパス未指定)

$ sshfs {serverAccount}@192.168.9.999: $HOME/sshfs-192.168.9.999
$ ls $HOME/sshfs-192.168.9.999/
test.txt  todolist.db

リモートのパス未指定だと、サーバのホームにマウントされる。

$ ls
test.txt  todolist.db
$ pwd
/home/{serverAccount}

リモートパス指定の場合は、こんな感じ。 ※例:/media/test

$ sshfs -o password_stdin xxx@192.168.9.999:/media/test $HOME/sshfs-192.168.9.999

引数 password_stdin を使うと、パスワードを標準出力で渡すことが可能。

$ cat ~/.sshfs.text | sshfs -o password_stdin xxx@192.168.9.999:/media/test $HOME/sshfs-192.168.9.999

本当は PAM を使うらしい...

$ sshfs --help | grep password_stdin
    -o password_stdin      read password from stdin (only for pam_mount!)

SSH のように公開鍵認証も使えるようなので、本当ならそうしたほうが無難ではある。