Samba over SSH
名前の通り、SSHを通して外部LANのSambaに接続する。
ポートフォワードするだけなんだけど。
実は私の環境ではSFTPがあれば、何の問題もないけど、興味本位で。
ランダムアクセスしたいときに使えるし。
環境
サーバ側は以下を想定。まぁ一般的な環境。
クライアント側はポートフォワードに対応したSSHクライアントがあればOK
今回は Ubuntu10.10 + OpenSSH を使用
Windowsでもputtyとかでいける。
方法
まず、ポートフォワーディング。
1023以下のポートを占有するので、root権限が必須。
sudo ssh -L 139:samba_server:139 ssh_user@ssh_server
samba_serverは(SSHサーバから見た)Sambaサーバのアドレス。NetBIOS名でも可。
ssh_user@ssh_serverは(ローカルから見た)SSHサーバのユーザ/アドレス。普段ログインするときに使ってるもの。
そしてアクセス。Ubuntuの場合Nautilusでそのままいける。
先ほどのシェルはSSHサーバに繋がってるのでもう一つシェルを開いて(もちろん、先ほどのsshでNオプションをつけてもいい。)
nautilus smb://localhost/share_name
と打てば、ファイルブラウザ(Nautilus)が開いてディレクトリが表示される。
share_name はSambaでの共有名。
もちろん、smbmountやsmbclientやらでも問題ない
//localhost/share_name
と入力すればアクセスできる。
出来ない場合
以上で出来ない場合は、Sambaサーバの設定を見直すのが良いかも。
私の場合、
interfaces = 192.168.11.0/24 bind interfaces only = yes
をコメントアウトしてsamba再起動でアクセスできた。
実はよく分かってないのでもう少し要調査。
問題点
問題が2つほど。
- root権限が必要。
- ローカルのLAN(意味かぶっとる)のSambaにアクセスできない。
一見ローカルのポートを変えれば全て解決しそうな気がするが、
ssh -L 8139:samba_server:139 ssh_user@ssh_server nautilus smb://localhost:8139/share_name
と入力しても何故かエラー(Connection time out)。
これについてはよく分からない。