Menggunakan SSHFS (Secure Shell Filesystem) untuk Mounting Direktori Remot
SSHFS adalah sebuah program sumber terbuka untuk mounting sebuah filesystem. Program ini menggunakan SFTP (Secure File Transfer Protocol atau juga dikenal SSH File Transfer Protocol) sehingga transmisi data dari client ke server akan dienkripsi. Selain itu, program ini juga menggunakan FUSE (File System in Userspace). Dengan menggunakan SSHFS kita tidak perlu "mengotak-atik" server tujuan.
Persiapan
Disini diperlukan dua server. Satu sebagai client dan satu lagi sebagai server. Pada artikel ini akan dijelaskan cara mounting sebuah home directory dari server. Untuk mounting directory lain bisa menyesuaikan
Pastikan teman - teman sudah mempunyai server tujuan dan mempunyai akses SSH di server tersebut. Kemudian, disini kita akan menggunakan autentikasi berbasis kunci publik (public key) antara client dan server agar mempermudah proses. Berikut adalah cara singkat untuk membuat key dan mengaplikasikannya ke server untuk autentikasi nantinya.
- Buat Key (jika belum)
Gunakan perintah:
ssh-keygenSetelah itu, akan muncul pertanyaan dimana file kunci private dan kunci publik akan disimpan. Enter file in which to save the key (/home/huda/.ssh/id_rsa): Tekan ENTER untuk default.
Maka akan muncul pertanyaan Enter passphrase (empty for no passphrase): , dapat diisi atau dikosongkan lalu klik ENTER.
Maka akan muncul pertanyaan Enter same passphrase again: , diisi sesuai passphrase yang kita isikan sebelumnya atau jika tidak mengisi passphrase cukup klik enter. Apabila muncul
Your identification has been saved in /home/huda/.ssh/id_rsa
Your public key has been saved in /home/huda/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:pFWbEcc012ynw0dJrn9WOj54oaNqgMJKxTFuu7eXGQk huda@huda
The key's randomart image is:
+---[RSA 3072]----+
| +++ o+.|
| o . =.o..*|
| o o o o . =.|
| = E + = .|
| .o ..o S . o.|
| .o.. .o o..|
|.. .. .+ oooo|
|. . . +. +.oo.|
| ..o..... o.. |
+----[SHA256]-----+
berarti file kunci sudah dibuat.
- Copy key ke server
Jika teman-teman menggunakan path default untuk lokasi key tadi maka cukup gunakan perintah:
ssh-copy-id <username>@<ip address>NOTE: username dan ip address yang digunakan adalah username dan ip server tujuan
Setelah itu masukkan password untuk autentikasi. Untuk melihat apakah berhasil berhasil atau tidak, teman - teman bisa coba menggunakan perintah ssh <username>@<ip address> apabila bisa langsung masuk tanpa menginputkan password maka tandanya autentikasi kunci publik berhasil.
Mount Filesystem menggunakan sshfs
- Install Program sshfs
sudo apt install sshfsNote: jika menggunakan CentOS maka gunakan
fuse-sshfs
- Buat direktori mount
Untuk direktori sebenarnya bisa dimana saja. Namun, ada folder mnt yang sudah disediakan agar mudah untuk memanajemen nantinya.
sudo mkdir /mnt/hudaTeman-teman bisa mengganti nama folder server diatas
- Mounting
sshfs mempunyai perintah dasar:
sshfs [user@]hostname:[directory] mountpoint
useradalah user yang akan digunakan untuk autentikasidirectoryadalah directory di dalam serverhostnameadalah alamat ip atau domain server yang akan di mountmountpointadalah tempat filesystem akan dimount nantinya. Dalam hal ini adalah direktori yang sudah kita buat di langkah nomor 2 yaitu/mnt/huda
Gunakan perintah di bawah ini (modifikasi sesuai kebutuhan)
sudo sshfs -o allow_other,default_permissions,identityFile=<file key> <username>@<hostname>:<path yang akan di mount> <mountpoint>PERHATIAN
Jika UID dan GID antara client dan server berbeda maka tambahan opsi uid=<uid client>,gid=<gid client> pada perintah diatas!
Maka perintahnya akan menjadi:
sudo sshfs -o allow_other,default_permissions,identityFile=<file key>,uid=<uid client>,gid=<gid client> <username>@<hostname>:<path yang akan di mount> <mountpoint>UID dan GID bisa didapatkan dengan cara
cat /etc/passwd | grep <username client>akan muncul 1 baris, contoh
huda:x:1000:1000:,,,:/home/huda:/bin/bash
angka 1000 yang pertama adalah uid. angka 1000 yang kedua ada gid.
angka tersebut berbeda - beda tiap user.
Contoh
sudo sshfs -o allow_other,default_permissions,identityFile=/home/huda/.ssh/id_rsa [email protected]:/home/huda /mnt/dreamOpsi allow_other mengijinkan user lain mengakses mountpoint ini seperti layaknya ketika mounting disk secara normal
Opsi default_permissions artinya menggunakan sistem perijinan default
Setelah berhasil maka file di server bisa diakses di /mnt/huda
untuk unmount gunakan:
umount <path>Contoh:
umount /mnt/hudaMembuat Mount menjadi permanen
Agar filesistem otomatis termount saat akan diakses.
- Edit /etc/fstab
sudo nano /etc/fstab- Tambahkan baris baru
Modifikasi agar sesuai
<username>@<hostname/ipaddr>:<directory> <mountpoint> fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=<path key>,allow_other,default_permissions 0 0Contoh
[email protected]:/home/huda /mnt/dream fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=/home/huda/.ssh/id_rsa,allow_other,default_permissions 0 0fuse.sshfs adalah driver yang digunakan.
- Reboot
sudo reboot
About Muhammad Khuirul Huda
Muhammad Khuirul Huda is an Informatics Engineering student at Universitas Negeri Semarang.
Comments
Do you have a problem, want to share feedback, or discuss further ideas? Feel free to leave a comment here! Please stick to English. This comment thread directly maps to a discussion on GitHub, so you can also comment there if you prefer.
Instead of authenticating the giscus application, you can also comment directly on GitHub.