WindowsからSSHFSを使う(Samba on Linux/Ubuntu編)

はてなブックマークに追加   del.icio.usに追加   livedoorクリップに追加   Technoratiに追加   2008年08月02日 12:22:28 (Sat)

前回はWindows上で動作するソフトウェアとしてDokanを紹介しましたが、今回はやや複雑です。
まずUbuntuがインストールされたマシンを用意し、UbuntuにSSHFSをセットアップします。
そしてUbuntuからマウントしたいサーバーに対してSSHFSコマンドを実行します。
その後、Sambaを使ってWindowsとUbuntu間をプライベートネットワークで共有します。

こうする事で、Windowsからはあたかも普通のファイルサーバーとして扱え、実際にはSSHFSで接続した先のディレクトリを参照する事になります。

この方法のメリットは、複数台のWindowsクライアントがあった場合、それぞれにSSHFSのソフトウェアを入れる必要がない事です。
また、ノートPCのVMware上の仮想環境にSSHFSをセットアップしたUbuntuを稼動させれば、インターネットの環境さえあれば自分のファイルにすぐアクセス出来る事になります。(もちろんSSHだからといってセキュリティを疎かにしてはいけませんが)

それらの手順を紹介します。

ここではVMwarePlayerがインストール済みで、VMware上のネットワークアダプタが正しく動作しているものと仮定します。

まず、Ubuntuのサイトからデスクトップ版UbuntuのVMware用ファイルをダウンロードします。
http://www.ubuntulinux.jp/

ダウンロードしたファイルを解凍すると、ディレクトリ内に「Ubuntu.vmx」というファイルが出来上がるので、それを実行するとUbuntuが起動します。
(搭載メモリが512MB以下の場合、Ubuntu.vmxをテキストエディタで開いて、memsize = "512"を"256"にして下さい/そもそも512MBではSSHFSの環境として厳しいと感じます)

起動したら、初期設定を行います。
デスクトップ画面になったらアプリケーション→アクセサリ→端末でターミナルを起動して、「sudo apt-get update」コマンドで既存パッケージを更新します。(環境によってはネットワークの設定でDNSを設定する必要があるかもしれません)

パッケージの更新が終わったら一度再起動をして、またターミナルを起動します。
そして以下のコマンドを実行。

sudo apt-get install sshfs

これだけでSSHFSのパッケージを取得してインストールしてくれます。

とりあえずこの段階で、現在の一般ユーザーのホームディレクトリ内にマウントポイント用のディレクトリを作ります。

cd /home/kgworks
mkdir sshfs

次にマウントする際のオプションとして、allow_othersを利用可能にするため、sudo /etc/fuse.confを編集します。

#user_allow_other ←この欄をコメントアウトして保存します

そしてマウント。

sshfs ユーザー名@あなたのホスト:/home/マウント先ディレクトリ /home/kgworks/sshfs -o allow_other

df -Thを実行して、マウントされていればひとまず成功です!
一旦アンマウントします。

fusermount -u /home/kgworks/sshfs

次にSambaをインストールします。

sudo apt-get install samba smbfs

インストールが完了したら、設定ファイルを編集します。

sudo vi /etc/samba/smb.conf

security = share ←修正
unix charset = UTF-8 ←修正もしくは追加
dos charset = CP932 ←修正もしくは追加
display charset = UTF-8 ←修正もしくは追加
workgroup = KGWORKS ←必要に応じて修正

一番最下部に下記を追加

[sshfs]
comment = "SSHFS on Ubuntu"
path = /home/kgworks/sshfs
public = yes
writable = yes
create mask = 0777
directory mask = 0777
force user = kgworks ←sshfsをマウントする時のユーザー
force group = kgworks ←sshfsをマウントする時のグループ

のように追加します。
force userとforce groupのUID、GIDがマウント先の同一ユーザー名のUID、GIDと一致している必要があるので、必要に応じてUbuntu側にユーザーを追加等して下さい。

※最初に作った一般ユーザーを削除したり、UIDやGIDを変更しないように注意して下さい。VMware上のUbuntuのユーザーを編集したい場合は追加して、追加したユーザーのUID、GIDをマウント先の所有者と合わせるなどして下さい。
(自分の場合は、マウント先の所有者のUID、GIDを、VMware上のUbuntuで最初に作ったユーザーのUID、GIDに合わせました。)

再度、マウントします。

sshfs kgworks@ホスト名:/home/kgworks /home/kgworks/sshfs -o allow_other

df -Thで確認して、マウントされている事を確認します。

とりあえずVMware上のUbuntuからファイルの読み書きが出来るか確認します。
問題があった場合は、sshfsを実行するユーザーのUID,GIDとマウント先のディレクトリ所有者のUID,GIDが一致しているか確認してください。

問題なければ、Sambaを再起動します。

sudo /etc/init.d/samba restart

Windowsのマイネットワークなどから、Sambaで設定したグループを探します。
見つかったら、sshfsというディレクトリがあるか確認してみます。
見つからない場合、Sambaの設定を見直してみてください。
ディレクトリがあったけど入れない、という場合も設定を見直してみてください。(ユーザー、グループの不一致が原因の可能性があります)
もしディレクトリがあって入れたけど、ファイルの作成、編集、削除が出来ない場合は、sshfsコマンドでマウントしたユーザー、グループと、マウント先のユーザー、グループのIDの不一致の可能性があります。

無事、ファイルの作成、編集、削除が出来たら設定は完了です。
sshfsのディレクトリをWindows側でネットワークドライブとして扱う事で、Dokanのようにドライブとして扱う事が出来ます。

この設定を行うにあたって、以下のサイトを参考にさせて頂きました。
http://www.wynia.org/wordpress/wp-content/cache/supercache/www.wynia.org/wordpress/2007/02/08/sshfs-on-windows-via-samba-shares-on-ubuntu-vmware/index.html