SSHFS (Sistem File SSH) adalah implementasi Sistem File di Ruang Pengguna (FUSE) yang memungkinkan klien untuk memasang sistem file jarak jauh melalui koneksi SSH. SSHFS menggunakan SSH File Transfer Protocol (SFTP) untuk memasang sistem file jarak jauh ke mesin klien, dan koneksi antara klien dan server aman dan terenkripsi.
SSHFS dapat digunakan sebagai alternatif dari protokol FTP tradisional. Ini aman secara default melalui koneksi SSH dan tidak diperlukan paket atau konfigurasi tambahan. SSHFS bekerja dengan konfigurasi SSH default yang sederhana.
Dalam tutorial ini, Anda akan belajar cara memasang direktori jarak jauh dengan cara yang aman menggunakan SSHFS antara dua mesin Linux (klien dan server). Panduan ini juga mencakup cara menyiapkan chroot di SSHFS yang akan mencegah pengguna mengakses direktori pengguna lain.
Prasyarat
Untuk mengikuti panduan ini, Anda memerlukan dua mesin Linux, klien, dan server. Anda dapat menggunakan distribusi Linux apa pun, dan pastikan server memiliki server OpenSSH yang terinstal, dan Anda memiliki pengguna non-root dengan hak akses sudo root.
Memasang SSHFS ke Komputer Lokal Anda
Secara default, SSHFS paket tersedia di sebagian besar distribusi Linux, termasuk Debian/Ubuntu, RHEL/CentOS/Rocky, dan ArchLinux/Manjaro. Anda dapat dengan mudah menginstalnya menggunakan manajer paket sistem Anda. Di bagian ini, Anda akan menginstal SSHFS di mesin lokal/klien Anda.
Pertama, perbarui daftar indeks paket Anda dengan menjalankan perintah berikut.
# Untuk Debian/Ubuntu
sudo apt update
# Untuk RHEL/CentOS/RockyLinux
sudo dnf check-update
# Untuk ArchLinux /Manjaro
sudo pacman -Syu
Setelah indeks paket Anda diperbarui, instal paket SSHFS menggunakan manajer paket Anda seperti di bawah ini. Pada distribusi Debian dan Archlinux, paket tersebut diberi nama 'sshfs ', tetapi pada distribusi berbasis RHEL, paket tersebut disebut 'fuse-sshfs '.
# Untuk Debian/Ubuntu
Sudo apt install sshfs
# Untuk RHEL/CentOS/RockyLinux
sudo dnf install fuse-sshfs
# Untuk ArchLinux/Manjaro
sudo pacman -S sshfs
Sekarang Anda telah menyelesaikan instalasi paket SSHFS di mesin lokal Anda. Selanjutnya, Anda akan mempelajari perintah dasar untuk memasang dan melepas direktori/partisi jarak jauh ke mesin lokal Anda menggunakan perintah SSHFS.
Dasar:Pasang dan Lepas menggunakan SSHFS
Sebelum Anda memulai dengan perintah SSHFS, pastikan Anda memiliki server Linux dengan OpenSSH yang diinstal diaktifkan di atasnya. Untuk otentikasi pengguna ke server, Anda dapat menggunakan otentikasi berbasis kata sandi SSH atau otentikasi berbasis kunci SSH. Namun, Anda dapat mempertimbangkan untuk menggunakan otentikasi berbasis kunci SSH, yang lebih aman daripada otentikasi berbasis sandi.
Di bagian ini, Anda akan mempelajari perintah dasar 'sshfs' untuk memasang direktori/partisi jarak jauh dari server ke mesin lokal/klien. Selain itu, Anda akan mempelajari cara melepas sshfs dari mesin lokal Anda.
1. Perintah dasar 'sshfs ' untuk memasang direktori ke mesin lokal melalui protokol SSH ada di bawah.
sshfs [dilindungi email]:/remote/directory /local/directory
Dalam praktiknya, pasang direktori jarak jauh '/srv/data ' dari server '172.16.1.10 ' ke direktori mesin lokal '~/data '. Contoh ini menggunakan pengguna SSH 'johndoe'.
sshfs [dilindungi email]:/srv/data ~/data
Sekarang Anda akan diminta untuk otentikasi kata sandi jika Anda menggunakan otentikasi berbasis kata sandi untuk SSH Anda.
Untuk memverifikasi, jalankan perintah 'ls' ke direktori '~/data ' di mesin lokal.
ls -lah ~/data
Anda akan melihat daftar file dari server jauh di komputer lokal Anda.
2. Sekarang, untuk melepas direktori jarak jauh dari mesin lokal Anda, jalankan perintah 'fusermount ' seperti di bawah ini. Perintah ini digunakan untuk memasang dan melepas sistem berkas FUSE.
fusermount -u ~/data
3. Contoh lain dari 'sshfs ' perintah yang mungkin Anda minati.
Perintah 'sshfs' dengan opsi debugging '-d '. Setiap kali Anda mendapat masalah dengan perintah 'sshfs', gunakan opsi tambahan '-d' untuk menampilkan semua pesan debug saat membuat koneksi ke server.
sshfs [email protected]:/remote/directory /local/directory -d
Sekarang, jika Anda menjalankan server dengan port SSH non-standar, Anda dapat menambahkan opsi '-p' diikuti oleh port SSH Anda.
sshfs [email protected]:/remote/directory /local/directory -C -p 2222
Opsi '-C ' akan mengaktifkan kompresi, setara dengan opsi '-o compression=yes' dalam perintah ssh.
Untuk referensi lengkap, Anda dapat menggunakan opsi '--help' atau menggunakan halaman manual SSHFS.
sshfs --help
man sshfs
Menyiapkan Chroot di SSHFS
Di bagian ini, Anda akan mempelajari cara mengaktifkan chroot di SSHFS, yang dapat dicapai dengan mengonfigurasi server SSH dan menentukan pengguna dan direktori. Lingkungan chroot akan membatasi akses direktori, tetapi pengguna Anda masih dapat membaca dan menulis di direktori mount.
1. Pertama, Anda akan membuat direktori chroot baru untuk pengguna Anda dan mengizinkan akses baca dan tulis. Dalam panduan ini, Anda akan membuat direktori bersama baru '/srv/shared', lalu membuat direktori home dan direktori data baru untuk setiap pengguna.
Jalankan perintah berikut untuk membuat direktori bersama utama baru '/srv/shared' dan ubah kepemilikan menjadi pengguna dan grup 'root '.
mkdir -p /srv/shared
sudo chown -R root:root /srv/shared
2. Sekarang, buat direktori lain untuk setiap pengguna di bawah '/srv/shared' direktori. Dan pastikan untuk mengubah kepemilikan direktori itu menjadi pengguna dan grup 'root '.
mkdir -p /srv/shared/johndoe
sudo chown -R root:root /srv/shared/johndoe
3. Selanjutnya, buat 'data ' direktori di dalam direktori home pengguna '/srv/shared/johndoe '. Kemudian ubah kepemilikan direktori tersebut menjadi pengguna 'root ' dan grup 'johndoe '. Terakhir, izinkan grup 'johndoe ' untuk membaca dan menulis di direktori tersebut.
mkdir -p /srv/shared/johndoe/data
sudo chown -R root:johndoe /srv/shared/johndoe/data
sudo chmod g+rwx /srv/shared/johndoe/data
Sekarang, Anda dapat memasang direktori jarak jauh '/data ', tetapi sama dengan direktori '/srv/shared/johndoe/data' di server.
4. Setelah Anda membuat direktori chroot untuk pengguna Anda, Anda harus mengedit konfigurasi SSH '/etc/ssh/sshd_config'. Edit menggunakan nano atau editor teks favorit Anda.
sudo nano /etc/ssh/sshd_config
Tambahkan baris berikut ke file.
Subsystem sftp internal-sftp>
Match User johndoe
ChrootDirectory /srv/shared/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Konfigurasi 'internal-sftp ' akan memungkinkan SSH untuk bertindak sebagai server SFTP juga. Kemudian tentukan 'ChrootDirectory ' untuk pengguna 'johndoe ' ke '/srv/shared/%u ' direktori. '%u ' artinya sebagai nama pengguna.
Simpan dan tutup file.
5. Selanjutnya, jalankan perintah berikut untuk memverifikasi konfigurasi SSH, dan pastikan Anda tidak mendapatkan kesalahan sintaks. Kemudian restart layanan SSH untuk menerapkan konfigurasi baru.
sudo sshd -t
sudo systemctl restart sshd
6. Sekarang, kembali ke mesin klien/lokal, lalu pasang direktori jarak jauh di lingkungan chroot. Anda harus menggunakan direktori '/ data', bukan direktori path lengkap '/srv/shared/johndoe/data'. Dan Anda memiliki hak istimewa untuk membaca, menulis, dan mengeksekusi ke direktori 'data'.
sshfs [dilindungi email]:/data ~/data
Untuk memverifikasi akses tulis, buat file baru di mesin klien Anda menggunakan perintah berikut.
cd ~/data
echo "File ini dari mesin klien">> file lain.md
Sekarang, kembali ke server, navigasikan ke direktori '/srv/shared/johndoe/data ', periksa file yang tersedia di direktori tersebut.
cd /srv/shared/johndoe/data/
ls
cat another-file.md
Anda akan melihat file yang baru saja Anda buat dari mesin klien.
Di bagian ini, Anda telah membuat direktori chroot untuk pengguna SSHFS dan mengonfigurasi layanan SSH untuk mengaktifkan chroot.
Pemecahan masalah
Jika Anda mendapatkan kesalahan pada koneksi SSHFS, Anda dapat memecahkan masalah koneksi Anda menggunakan cara berikut.
Anda dapat menggunakan mode debug dengan opsi '-d' . Dengan opsi ini, Anda akan melihat log koneksi Anda di terminal shell Anda.
Jalankan 'sshfs ' dengan mode debug seperti di bawah ini.
sshfs [dilindungi email]:/data ~/mnt -d
Cara lain yang bisa Anda coba adalah dengan mengecek log SSH di server Anda. Sebelum menggunakan perintah 'sshfs', buka terminal baru dan sambungkan ke server Anda, lalu jalankan 'tail ' perintah untuk memeriksa layanan log SSH.
Pada sistem berbasis Ubuntu/Debian, log SSH tersedia di '/var/log/auth.log '. Dan untuk sistem berbasis RHEL/CentOS, log SSH tersedia di '/var/log/secure' .
# Untuk Ubuntu/Debian
tail -f /var/log/auth.log
# Untuk RHEL/CentOS
tail -f /var/log/secureKesimpulan
Selamat! Anda sekarang telah mempelajari cara menggunakan SSHFS untuk memasang direktori jarak jauh dari server ke mesin lokal Anda. Selain itu, Anda telah mempelajari cara menyiapkan lingkungan chroot di SSHFS, dan cara memecahkan masalah koneksi SSHFS Anda.
Cara Mengelola Status Terraform di Bucket AWS S3 Cara Mengotomatiskan Sumber Daya AWS Anda dengan Template CloudFormationLinux