Linux sshfs kullanımı

Sshfs(Secure SHell FileSystem) ssh üzerinden uzak bir pc(local ağda veya dünyanın herhangi bir yerinde olan herhangi bir pc) deki dizinleri local makinanıza bağlayarak sanki harddiskinizin bir bölümüne(partition) bağlanır gibi kolaylıkla bağlanmanıza ve kolaylıkla işlemler yapmanıza olanak sağlar. Örnek vermek gerekirse : Bir web programcısıysanız ve uzak bir pc üzerinden yayın yapıyorsanız Filezilla vb gibi ftp client programlarıyla FTP server a bağlanıp doysa trasnferi yapmışınızdır.Dosya alışverişi yaparken insan biraz da olsa bunalabiliyor çünkü ftp bize normal dizinlerde gezer gibi kolay bir şekilde gezebilmemizi sağlayamıyor,arada bir bağlantı zaman aşımından kapanabiliyor vb. İşte tam burda sshfs ile uzak pc nizdeki dizinlerinizi local pc nize bağlayarak hiç ftp ile ugraşmadan bütün işlemlerinizi daha rahat bir şekilde yapabilirsiniz.

Gelelelim kurulum ve konfigurasyona :

Not : sshfs ile uzak makinaya bağlanabilmek için uzak makina da ssh servisi çalışıyor olması gerekmektedir. ssh ile uzak makinaya bağlanabiliyorsanız herşey yolunda demektir.

sshfs kurulumu :

Eger Debian veya Ubuntu gibi bir dağıtım kullanıyorsanız synaptic paket yöneticisini kullanarak veyada apt-get install sshfs komutunu kullanarak sshfs yi kurabilirsiniz.Ben slackware dağıtımı üzerinde kaynak koddan kurulum yapacağım ama zaten geri kalan her şey aynı.

Bu linkten sshfs-fuse-2.2.tar.gz ve sshfs-fuse.tar.gz arşivlerini indirebilirsiniz.

Slakcbuild paketini açalım ve soruce kodun arşivini .slackBuild dosyasının bulundugu dizine atalım.

$ tar -xvzf sshfs-fuse.tar.gz
$ ls
sshfs-fuse   sshfs-fuse-2.2.tar.gz   sshfs-fuse.tar.gz
$ mv sshfs-fuse-2.2.tar.gz sshfs-fuse/.

Daha sonra .slackBuild dosyasının bulunduğu dizine girip .slackBuild dosyasını çalıştıralım

$ cd sshfs-fuse/
$ ./sshfs-fuse.SlackBuild

Eger derleme işlemi sorunsuz bir şekilde tamamlandıysa /tmp dizini altına bir dosya oluşturduğunu göreceksiniz. /tmp dizinine gidelim ve installpkg komutula sshfs yi kuralım

$ cd /tmp
$ installpkg sshfs-fuse-2.2-x86_64-1_SBo.tgz

Sshfs kurulumu tamam :)

sshfs kullanımı :

Sshfs kullanım şekli:

$ sshfs [-o options] uzak_username@uzak_ip:uzak_dizin_yolu local_dizin

Bir örnek üzerinde lan üzerinde bulunan serverimizdeki music dizinini kendi home dizinimdeki muzikler dizinine bağlayalım. Öncelikle bağlayacağım dizini oluşturuyorum.Siz isterseniz Wan üzerindeki bir server’i de sshfs ile local bir dizine bağlayabilrisiniz.

$ mkdir /home/mesuutt/muzikler

Artık sshfs ile uzek dizinimi local dizine bağlayabilirim.Şimdi sshfs ile “slacker” kullanıcısiyla 192.168.1.28 ip adresine sahip olan lan üzerindeki uzak pcde bulunan music dizinini oluşturmuş olduğum dizine yanlızca fuse gurubunda olan kullanıcılar veyada herşeye kadir root kullanıcısıyla bağmayabiliriz çünkü fuse gurubunun üyesi olmayan bir kullanıcı ile uzak dizini bağlamaya çalışırsanız /dev/fuse ye yetkimiz olmadığından fuse: failed to open /dev/fuse: Permission denied hatasını alırsınız.Bunun için fuse{:target=blank}yi kullanacağımız kullanıcılaru fuse gurubuna eklememiz gerekmektedir.

$ usermod -a -G fuse mesuutt

Artık mesuutt kullanıcısı fuse gurubunda olduğu için fuse yi kullanabilir.

$ sshfs slacker@192.168.1.28:/home/slacker/music/ /home/mesuutt/muzikler/.

Uzak pc nin parolasını girdiğinizde uzak pcnizde bulunan music dizinindeki bütün dosya ve dizinler /home/mesuutt/muzikler dizini altında görüküyor olacaktır. :)

Dizinin bağlı olup olmadığını mount komutuyla öğrenebilirsiniz.

$ mount | column -t

Uzak pc ile bağlantıyı kaldırmak için ise fusermount -u [dizin] komutu kullanılır.Yukarıdaki örnekten gidersek

$ fusermount -u  /home/mesuutt/muzikler/

Eger her bağlanmanızda parola girmek istemiyorsanız parola girmeden güvenli ssh bağlantısı yapma{:target=blank}nın nasıl olduguna bakabilrisiniz.

Eger bilgisayar her açıldığında otomatik olarak serverdaki dizini local pc ye bağlamak istiyorsanız uzak pc yi local pc ye bağlamak için kullandığınız komutu açılştada çalıştırmanız gerekir.Bunun için ise bu komutu /etc/rc.local dosyasına eklemeniz gerekir. Açılışta komut çalıştırmak ile ilgili açılışta program çalıştırmak{:target=blank} yazısına bakablirsiniz.

Umarım yararı dokunmuştur :)

comments powered by Disqus