ssh (5) sshfsによるOneDrive同期ファイルの間接参照構成

ネットワーク構成

制約

  • 固定PC:社内ネットワークに常時接続、SSH接続が可能、SMB共有は申請必要、OneDriveの同期は可能.

  • 携帯PC:ファイル保存不可.OneDriveの同期不可.

よって、携帯PCからOneDriveをシームレスに見るために以下の構成とした.


構築したネットワーク

  • 固定PCでOneDriveを同期 ( /mnt/d/OneDrive/OneDrive - XXX/Desk が共有対象 ).

  • 携帯PCのWSL2から sshfs によってマウント.

  • マウントポイントをクイックアクセスによりアクセス.

    • 接続の自動化に .bat を作成.起動のショートカットを配置.

    • .batはパスワード入力不可.鍵管理に keychain を使用.

    • 最初は、keychainへの登録が必要(WSL2を起動する).


スクリプト

automount__sshfs.sh

#!/bin/zsh

USER="user"
IP="192.168.1.101"

MOUNTPOINT="$HOME/mnt/oneDrive"
REMOTEPATH="/mnt/d/OneDrive/OneDrive - XXX"
LOG="$HOME/mnt/sshfs_command/sshfs_debug.log"
OPTIONS=allow-other,umask=000,idmap=user,ServerAliveInterval=15,ServerAliveCountMax=3

# -- keychain -- #
eval $(keychain --quiet --agents ssh id_ed25519)
source $HOME/.keychain/$HOST-sh
echo "SSH agent socket: $SSH_AUTH_SOCK" >> $LOG
ssh-add -l >> $LOG 2>&1

# -- sshfs -- #
if ! mount | grep -q "$MOUNTPOINT"; then
    nohup sshfs $USER@$IP:"$REMOTEPATH" "$MOUNTPOINT" -o $OPTIONS >> $LOG 2>&1 &
fi

# -- open  -- #
/usr/local/bin/wslstart $MOUNTPOINT

call__automount.bat

@echo off
wsl -d Ubuntu-24.04 -- /home/user/mnt/sshfs_command/automount__sshfs.sh

注意点

  • パスワードが.batだと通らない.keychain構成が必須.

  • nohup &が重要.じゃないと、コンソール終了ですぐにsshfsは終了する.

  • WEB側に反映されるまでに、若干のラグがあるかも.使用は注意.