One place for hosting & domains

      Cara Menggunakan Rsync untuk Menyinkronkan Direktori Lokal dan Direktori Jauh


      Pengantar

      Rsync, yang merupakan singkatan dari “remote sync”, adalah alat sinkronisasi berkas jarak jauh dan lokal. Alat ini menggunakan algoritma yang meminimalkan jumlah data yang disalin dengan hanya memindahkan bagian berkas yang berubah.

      Dalam panduan ini, kita akan membahas penggunaan dasar utilitas andal ini.

      Apa Yang Dimaksud Rsync?

      Rsync adalah alat sinkronisasi berkemampuan jaringan yang sangat fleksibel. Karena ketersediaannya di sistem Linux dan sistem semacam Unix serta popularitasnya sebagai alat untuk skrip sistem, alat ini disertakan di hampir semua distribusi Linux secara asali.

      Sintaks Dasar

      Sintaks dasar rsync sangat sederhana dan beroperasi dalam cara yang mirip ssh, scp, dan cp.

      Kita akan membuat dua direktori pengujian dan beberapa berkas pengujian dengan perintah berikut:

      • cd ~
      • mkdir dir1
      • mkdir dir2
      • touch dir1/file{1..100}

      Kini kita memiliki direktori bernama dir1 dengan 100 berkas kosong di dalamnya.

      Output

      file1 file18 file27 file36 file45 file54 file63 file72 file81 file90 file10 file19 file28 file37 file46 file55 file64 file73 file82 file91 file100 file2 file29 file38 file47 file56 file65 file74 file83 file92 file11 file20 file3 file39 file48 file57 file66 file75 file84 file93 file12 file21 file30 file4 file49 file58 file67 file76 file85 file94 file13 file22 file31 file40 file5 file59 file68 file77 file86 file95 file14 file23 file32 file41 file50 file6 file69 file78 file87 file96 file15 file24 file33 file42 file51 file60 file7 file79 file88 file97 file16 file25 file34 file43 file52 file61 file70 file8 file89 file98 file17 file26 file35 file44 file53 file62 file71 file80 file9 file99

      Kita juga memiliki direktori kosong bernama dir2.

      Untuk menyinkronkan isi dir1 ke dir2 di sistem yang sama, ketikkan:

      Opsi -r berarti rekursif, yang diperlukan untuk sinkronisasi direktori.

      Kita juga dapat menggunakan bendera -a sebagai gantinya:

      Opsi -a adalah bendera kombinasi. Ini adalah singkatan dari “archive” yang secara rekursif menyinkronkan dan mempertahankan tautan simbolis, berkas khusus dan berkas perangkat, waktu modifikasi, grup, pemilik, dan izin. Ini lebih umum digunakan daripada -r dan biasanya inilah yang ingin Anda gunakan.

      Catatan Penting

      Anda mungkin telah memperhatikan bahwa ada garis miring (/) di akhir argumen pertama dalam perintah di atas:

      Ini berarti “isi dari dir1”. Alternatifnya, tanpa garis miring, adalah menempatkan dir1 termasuk direktorinya dalam dir2. Ini akan menghasilkan hierarki yang terlihat seperti berikut:

      Selalu periksa kembali argumen Anda sebelum mengeksekusi perintah rsync. Rsync menyediakan metode untuk melakukannya dengan memberikan opsi -n atau --dry-run. Bendera -v (singkatan dari verbose) juga diperlukan untuk mendapatkan keluaran yang sesuai:

      Output

      sending incremental file list ./ file1 file10 file100 file11 file12 file13 file14 file15 file16 file17 file18 . . .

      Bandingkan keluaran ini dengan keluaran yang kita dapatkan bila menghapus garis miring di belakang:

      Output

      sending incremental file list dir1/ dir1/file1 dir1/file10 dir1/file100 dir1/file11 dir1/file12 dir1/file13 dir1/file14 dir1/file15 dir1/file16 dir1/file17 dir1/file18 . . .

      Anda dapat melihat di sini bahwa direktori itu telah ditransfer.

      Cara Menggunakan Rsync untuk Menyinkronkan dengan Sistem Jauh

      Menyinkronkan ke sistem jauh adalah masalah sepele jika Anda memiliki akses SSH ke mesin jauh dan rsync yang terinstal di kedua mesin. Setelah akses SSH diverifikasi di antara kedua mesin, Anda dapat menyinkronkan folder dir1 dari folder sebelumnya ke komputer jauh menggunakan sintaks ini (perhatikan bahwa dalam hal ini, kita ingin mentransfer direktori sebenarnya, jadi kita meniadakan garis miring):

      • rsync -a ~/dir1 username@remote_host:destination_directory

      Ini disebut operasi “push” karena mendorong direktori dari sistem lokal ke sistem jauh. Operasi lawannya adalah “pull”(tarik). Operasi ini digunakan untuk menyinkronkan direktori jauh ke sistem lokal. Jika dir1 berada di sistem jauh, bukan di sistem lokal kita, sintaksnya menjadi:

      • rsync -a username@remote_host:/home/username/dir1 place_to_sync_on_local_machine

      Seperti cp dan alat serupa, sumber selalu menjadi argumen pertama, dan tujuannya selalu menjadi yang kedua.

      Opsi Berguna untuk Rsync

      Rsync menyediakan banyak opsi untuk mengubah perilaku asali utilitas. Kita sudah membahas beberapa bendera yang lebih diperlukan.

      Jika Anda mentransfer berkas yang belum dikompresi, seperti berkas teks, Anda dapat mengurangi transfer jaringan yang menambahkan kompresi dengan opsi -z:

      • rsync -az source destination

      Bendera -P akan sangat berguna. Ini menggabungkan bendera --progress dan --partial. Bendera pertama menunjukkan bilah progres transfer dan bendera kedua memungkinkan Anda melanjutkan transfer yang terhenti:

      • rsync -azP source destination

      Output

      sending incremental file list ./ file1 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=99/101) file10 0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=98/101) file100 0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=97/101) file11 0 100% 0.00kB/s 0:00:00 (xfer#4, to-check=96/101) . . .

      Jika menjalankan lagi perintah ini, kita akan mendapatkan keluaran yang lebih pendek, karena tidak ada perubahan yang dibuat. Ini menggambarkan kemampuan rsync untuk menggunakan waktu modifikasi dalam menentukan keberadaan perubahan yang dibuat.

      • rsync -azP source destination

      Output

      sending incremental file list sent 818 bytes received 12 bytes 1660.00 bytes/sec total size is 0 speedup is 0.00

      Kita dapat memperbarui waktu modifikasi di beberapa berkas dan melihat bahwa rsync secara cerdas hanya menyalin kembali berkas yang diubah:

      • touch dir1/file{1..10}
      • rsync -azP source destination

      Output

      sending incremental file list file1 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=99/101) file10 0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=98/101) file2 0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=87/101) file3 0 100% 0.00kB/s 0:00:00 (xfer#4, to-check=76/101) . . .

      Agar kedua direktori tetap sinkron, kita perlu menghapus berkas dari direktori tujuan jika telah dihapus dari sumber. Secara asali, rsync tidak menghapus apa pun dari direktori tujuan.

      Kita dapat mengubah perilaku ini dengan opsi --delete. Sebelum menggunakan opsi ini, gunakan opsi --dry-run dan lakukan pengujian untuk mencegah kehilangan data:

      • rsync -a --delete source destination

      Jika Anda ingin mengecualikan berkas atau direktori tertentu yang berada di dalam direktori yang akan disinkronkan, Anda dapat melakukannya dengan memasukkannya dalam daftar yang dipisah koma setelah opsi --exclude=:

      • rsync -a --exclude=pattern_to_exclude source destination

      Jika telah menentukan pola untuk mengecualikan, kita dapat mengesampingkan pengecualian untuk berkas yang cocok dengan pola berbeda menggunakan opsi --include=.

      • rsync -a --exclude=pattern_to_exclude --include=pattern_to_include source destination

      Terakhir, opsi --backup rsync dapat digunakan untuk menyimpan cadangan berkas penting. Ini digunakan bersama opsi --backup-dir, yang menentukan direktori tempat menyimpan berkas cadangan.

      • rsync -a --delete --backup --backup-dir=/path/to/backups /path/to/source destination

      Kesimpulan

      Rsync dapat menyederhanakan transfer berkas melalui koneksi jaringan dan menambahkan fleksibilitas pada sinkronisasi direktori lokal. Fleksibilitas rsync membuatnya menjadi opsi yang tepat untuk banyak operasi dengan tingkat berkas yang berbeda.

      Penguasaan rsync memungkinkan Anda merancang operasi pencadangan yang kompleks dan memperoleh kontrol mendetail atas apa yang ditransfer serta caranya.



      Source link

      Cara Menggunakan SFTP untuk Mentransfer Berkas secara Aman dengan Server Jauh


      Pengantar

      FTP, atau “File Transfer Protocol” adalah metode tidak terenkripsi yang populer untuk mentransfer berkas di antara dua sistem jauh.

      SFTP, yang merupakan singkatan SSH File Transfer Protocol, atau Secure File Transfer Protocol, adalah protokol terpisah yang dipaketkan dengan SSH yang bekerja dalam cara serupa tetapi melalui koneksi aman. Keuntungannya adalah kemampuan memanfaatkan koneksi aman untuk mentransfer berkas dan melintasi sistem berkas di sistem jauh dan lokal.

      Umumnya, SFTP lebih disukai daripada FTP karena fitur keamanan yang mendasari dan kemampuannya melakukan piggyback pada koneksi SSH. FTP adalah protokol tidak aman yang seharusnya hanya digunakan dalam kasus terbatas atau pada jaringan yang Anda percayai.

      Meskipun SFTP terintegrasi ke dalam banyak alat grafis, panduan ini akan memperagakan cara menggunakannya melalui antarmuka baris perintah interaktifnya.

      Cara Menghubungkan dengan SFTP

      Secara asali, SFTP menggunakan protokol SSH untuk mengautentikasi dan membuat koneksi aman. Karena ini, metode autentikasi yang sama tersedia di SSH.

      Meskipun kata sandi mudah digunakan dan disiapkan secara asali, kami menyarankan Anda membuat kunci SSH dan mentransfer kunci publik ke sistem yang perlu Anda akses. Ini jauh lebih aman dan dapat menghemat waktu dalam jangka panjang.

      Lihatlah panduan ini untuk menyiapkan kunci SSH guna mengakses server jika Anda belum melakukannya.

      Jika dapat menghubungkan ke mesin menggunakan SSH, berarti Anda telah menyelesaikan semua persyaratan menggunakan SFTP untuk mengelola berkas. Uji akses SSH dengan perintah berikut:

      • ssh sammy@your_server_ip_or_remote_hostname

      Jika berhasil, keluar kembali dengan mengetikkan:

      Sekarang kita dapat membuat sesi SFTP dengan mengeluarkan perintah berikut:

      • sftp sammy@your_server_ip_or_remote_hostname

      Anda akan menghubungkan sistem jauh dan prompt Anda akan berubah menjadi prompt SFTP.

      Jika Anda bekerja di porta SSH khusus (bukan porta asali 22), maka Anda dapat membuka sesi SFTP seperti berikut:

      • sftp -oPort=custom_port sammy@your_server_ip_or_remote_hostname

      Ini akan menghubungkan Anda ke sistem jauh melalui porta yang ditentukan.

      Mendapatkan Bantuan di SFTP

      Perintah paling berguna untuk dipelajari terlebih dahulu adalah perintah help. Perintah ini memberi Anda akses ke ringkasan bantuan SFTP. Anda dapat memanggilnya dengan mengetikkan salah satu dari ini di prompt:

      atau

      Ini akan menampilkan daftar perintah yang tersedia:

      Output

      Available commands: bye Quit sftp cd path Change remote directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' df [-hi] [path] Display statistics for current directory or filesystem containing 'path' exit Quit sftp get [-Ppr] remote [local] Download file help Display this help text lcd path Change local directory to 'path' . . .

      Kita akan mendalami beberapa perintah yang Anda lihat di bagian berikut.

      Menavigasi dengan SFTP

      Kita dapat menavigasi hierarki berkas sistem jauh menggunakan sejumlah perintah yang berfungsi mirip dengan padanan shell-nya.

      Pertama-tama, mari kita ketahui di direktori mana kita saat ini pada sistem jauh. Sama seperti dalam sesi shell pada umumnya, kita dapat mengetikkan yang berikut untuk mendapatkan direktori saat ini:

      Output

      Remote working directory: /home/demouser

      Kita dapat melihat isi direktori saat ini di sistem jauh dengan perintah lainnya yang sudah familier:

      Output

      Summary.txt info.html temp.txt testDirectory

      Perhatikan bahwa perintah dalam antar muka SFTP bukanlah perintah shell biasa dan tidak kaya fitur, tetapi perintah-perintah itu mengimplementasikan beberapa bendera opsional yang lebih penting:

      Output

      drwxr-xr-x 5 demouser demouser 4096 Aug 13 15:11 . drwxr-xr-x 3 root root 4096 Aug 13 15:02 .. -rw------- 1 demouser demouser 5 Aug 13 15:04 .bash_history -rw-r--r-- 1 demouser demouser 220 Aug 13 15:02 .bash_logout -rw-r--r-- 1 demouser demouser 3486 Aug 13 15:02 .bashrc drwx------ 2 demouser demouser 4096 Aug 13 15:04 .cache -rw-r--r-- 1 demouser demouser 675 Aug 13 15:02 .profile . . .

      Untuk mendapatkan direktori lainnya, kita dapat mengeluarkan perintah ini:

      Sekarang kita dapat melintasi sistem berkas jauh, tetapi bagaimana jika kita perlu mengakses sistem berkas lokal kita? Kita dapat mengarahkan perintah ke sistem berkas lokal dengan menambahkan l di awal untuk lokal.

      Semua perintah yang dibahas sejauh ini memiliki padanan lokal. Kita dapat mencetak direktori kerja lokal:

      Output

      Local working directory: /Users/demouser

      Kita dapat membuat daftar isi direktori saat ini pada mesin lokal:

      Output

      Desktop local.txt test.html Documents analysis.rtf zebra.html

      Kita juga dapat mengubah direktori yang ingin kita tangani di sistem lokal:

      Mentransfer Berkas dengan SFTP

      Menyusuri sistem berkas jauh dan lokal terbatas kegunaannya bila tidak dapat mentransfer berkas di antara kedua sistem.

      Mentransfer Berkas Jauh ke Sistem Lokal

      Jika ingin mengunduh berkas dari hos jauh, kita dapat melakukannya dengan mengeluarkan perintah berikut:

      Output

      Fetching /home/demouser/remoteFile to remoteFile /home/demouser/remoteFile 100% 37KB 36.8KB/s 00:01

      Seperti yang Anda lihat, secara asali, perintah get mengunduh berkas jauh ke berkas dengan nama yang sama di sistem berkas lokal.

      Kita dapat menyalin berkas jauh ke nama yang berbeda dengan menentukan namanya kemudian:

      Perintah get juga menggunakan beberapa bendera opsi. Misalnya, kita dapat menyalin direktori dan semua isinya dengan menentukan opsi rekursif:

      Kita dapat memberi tahu SFTP untuk mempertahankan izin dan waktu akses yang sesuai menggunakan bendera -P atau -p:

      Mentransfer Berkas Lokal ke Sistem Jauh

      Mentransfer berkas ke sistem jauh mudah dilakukan menggunakan perintah “put” dengan semestinya:

      Output

      Uploading localFile to /home/demouser/localFile localFile 100% 7607 7.4KB/s 00:00

      Bendera yang sama yang dapat digunakan pada get juga dapat digunakan pada put. Jadi, untuk menyalin seluruh direktori lokal, Anda dapat mengeluarkan:

      Catatan: Saat ini ada kutu di versi OpenSSH yang disertakan pada rilis Ubuntu saat ini (setidaknya 14.04 hingga 15.10) yang menghalangi pengoperasian perintah di atas dengan benar. Setelah mengeluarkan perintah di atas untuk mentransfer konten ke server menggunakan versi OpenSSH yang mengandung kutu, pesan kesalahan berikut akan diberikan: Couldn't canonicalise: No such file or directory.

      Untuk mengatasi masalah ini, buat direktori tujuan di sistem jauh terlebih dahulu dengan mengetikkan mkdir localDirectory. Setelah itu, perintah di atas akan dijalankan tanpa kesalahan.

      Satu alat yang telah dikenal yang berguna saat mengunduh dan mengunggah berkas adalah perintah df, yang fungsinya mirip dengan versinya di baris perintah. Dengan alat ini, Anda dapat memeriksa apakah cukup ruang untuk menyelesaikan transfer yang Anda inginkan:

      Output

      Size Used Avail (root) %Capacity 19.9GB 1016MB 17.9GB 18.9GB 4%

      Perhatikan, tidak ada variasi lokal perintah ini, tetapi kita dapat mengatasinya dengan mengeluarkan perintah !.

      Perintah ! menempatkan kita ke dalam shell lokal sehingga kita dapat menjalankan perintah apa pun yang tersedia di sistem lokal kita. Kita dapat memeriksa penggunaan diska dengan mengetikkan:

      kemudian

      Output

      Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 595Gi 52Gi 544Gi 9% / devfs 181Ki 181Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home

      Perintah lokal lainnya akan berjalan sesuai harapan. Untuk kembali ke sesi SFTP Anda, ketikkan:

      Sekarang Anda akan melihat prompt SFTP dihasilkan.

      Manipulasi Berkas secara Sederhana dengan SFTP

      SFTP memungkinkan Anda melakukan pemeliharaan berkas dasar yang berguna saat menangani hierarki berkas.

      Misalnya, Anda dapat mengubah pemilik berkas di sistem jauh dengan:

      Perhatikan, tidak seperti perintah chmod sistem, perintah SFTP tidak menerima nama pengguna, melainkan menggunakan UID. Sayangnya, tidak ada cara mudah untuk mengetahui UID yang sesuai dari dalam antarmuka SFTP.

      Solusi terkait dapat dilakukan dengan:

      • get /etc/passwd
      • !less passwd

      Output

      root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh . . .

      Perhatikan, sebagai ganti memberikan perintah ! dengan sendirinya, kita menggunakannya sebagai awalan untuk perintah shell lokal. Cara ini berhasil untuk menjalankan perintah yang tersedia di mesin lokal kita dan dapat digunakan bersama perintah df lokal sebelumnya.

      UID akan berada di kolom ketiga berkas, seperti yang digambarkan melalui karakter titik dua.

      Demikian pula, kita dapat mengubah pemilik grup berkas dengan:

      Sekali lagi, tidak ada cara mudah untuk mendapatkan daftar grup sistem jauh. Kita dapat mengatasinya dengan perintah berikut:

      • get /etc/group
      • !less group

      Output

      root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: . . .

      Kolom ketiga berisi ID grup yang dikaitkan dengan nama di kolom pertama. Inilah yang kita cari.

      Untungnya, perintah chmod berfungsi seperti yang diharapkan di sistem berkas jauh:

      Output

      Changing mode on /home/demouser/publicFile

      Tidak ada perintah untuk memanipulasi izin berkas lokal, tetapi Anda dapat mengatur umask lokal, sehingga berkas yang disalin ke sistem lokal akan memiliki izin yang sesuai.

      Hal itu dapat dilakukan dengan perintah lumask:

      Output

      Local umask: 022

      Sekarang semua berkas reguler yang diunduh (selama bendera -p tidak digunakan) akan memiliki 644 izin.

      SFTP memungkinkan Anda membuat direktori di sistem lokal maupun jauh masing-masing dengan lmkdir dan mkdir. Ini akan berhasil seperti yang diharapkan.

      Perintah berkas selebihnya hanya menargetkan sistem berkas jauh:

      Perintah ini menirukan perilaku dasar dari versi shell. Jika Anda perlu melakukan tindakan ini di sistem berkas lokal, ingatlah bahwa Anda dapat masuk ke shell dengan mengeluarkan perintah ini:

      Atau menjalankan perintah tunggal di sistem lokal dengan mengawali perintah itu menggunakan ! seperti ini:

      Bila Anda selesai dengan sesi SFTP, gunakan exit atau bye untuk menutup koneksi.

      Kesimpulan

      Meskipun SFTP adalah alat sederhana, tetapi sangat berguna untuk administrasi server dan mentransfer berkas antar server.

      Misalnya, Anda dapat menggunakan SFTP untuk memungkinkan pengguna tertentu mentransfer berkas tanpa akses SSH. Untuk informasi lebih lanjut tentang proses ini, lihat tutorial kami tentang Cara Mengaktifkan SFTP Tanpa Akses Shell.

      Jika Anda biasa menggunakan FTP atau SCP untuk melakukan transfer, SFTP adalah cara yang tepat untuk memanfaatkan kekuatan keduanya. Walaupun tidak sesuai untuk setiap situasi, ini adalah alat fleksibel yang harus Anda gunakan dalam repertoar.



      Source link

      Cara Menggunakan SSH untuk Menghubungkan ke Server Jauh


      Pengantar

      Satu alat penting yang harus dikuasai sebagai administrator sistem adalah SSH.

      SSH, atau Secure Shell, adalah suatu protokol yang digunakan untuk masuk secara aman ke sistem jauh. Inilah cara paling umum untuk mengakses server jauh Linux.

      Dalam panduan ini, kita akan membahas cara menggunakan SSH untuk menghubungkan ke sistem jauh.

      Sintaks Dasar

      Untuk menghubungkan ke sistem jauh menggunakan SSH, kita akan menggunakan perintah ssh. Bentuk paling dasar dari perintah ini adalah:

      remote_host dalam contoh ini adalah alamat IP atau nama domain yang Anda coba hubungkan.

      Perintah ini beranggapan bahwa nama pengguna Anda di sistem jauh sama dengan nama pengguna Anda di sistem lokal.

      Jika nama pengguna Anda berbeda di sistem jauh, Anda dapat menentukan nama pengguna dengan sintaks ini:

      • ssh remote_username@remote_host

      Setelah terhubung ke server, Anda mungkin diminta memverifikasi identitas dengan memberikan kata sandi. Nanti kita akan membahas cara membuat kunci yang akan digunakan sebagai ganti kata sandi.

      Untuk keluar dari sesi ssh dan kembali ke sesi shell lokal Anda, ketikkan:

      Bagaimana Cara Kerja SSH?

      SSH bekerja dengan menghubungkan program klien ke server ssh, yang disebut sshd.

      Di bagian sebelumnya, ssh adalah program klien. Server ssh sudah berjalan di remote_host yang kita tetapkan.

      Di server Anda, server sshd seharusnya sudah berjalan. Jika tidak, Anda mungkin perlu mengakses server melalui konsol berbasis web atau konsol serial lokal.

      Proses ini perlu memulai server ssh yang bergantung pada distribusi Linux yang Anda gunakan.

      Di Ubuntu, Anda dapat memulai server ssh dengan mengetikkan:

      Perintah itu akan memulai server sshd, selanjutnya Anda dapat masuk dari jauh.

      Cara Mengonfigurasi SSH

      Bila mengubah konfigurasi SSH, berarti Anda mengubah pengaturan server sshd.

      Di Ubuntu, berkas konfigurasi sshd utama berada di /etc/ssh/sshd_config.

      Cadangkan versi berkas saat ini sebelum mengedit:

      • sudo cp /etc/ssh/sshd_config{,.bak}

      Buka berkas dengan editor teks:

      • sudo nano /etc/ssh/sshd_config

      Anda perlu membiarkan sebagian besar opsi dalam berkas ini. Namun, ada beberapa opsi yang perlu Anda lihat:

      /etc/ssh/sshd_config

      Port 22
      

      Deklarasi porta menentukan porta yang akan digunakan untuk mendengarkan koneksi. Secara asali adalah 22. Anda mungkin harus membiarkan pengaturan ini, kecuali jika memiliki alasan spesifik untuk melakukan hal sebaliknya. Jika Anda sengaja mengubah porta, kami akan menunjukkan cara menghubungkan ke porta baru nanti.

      /etc/ssh/sshd_config

      HostKey /etc/ssh/ssh_host_rsa_key
      HostKey /etc/ssh/ssh_host_dsa_key
      HostKey /etc/ssh/ssh_host_ecdsa_key
      

      Deklarasi hos menentukan tempat mencari kunci hos global. Kita nanti akan membahas apa yang dimaksud dengan kunci hos.

      /etc/ssh/sshd_config

      SyslogFacility AUTH
      LogLevel INFO
      

      Kedua item ini mengindikasikan tingkat log yang harus terjadi.

      Jika Anda mengalami kesulitan dengan SSH, menambah jumlah aktivitas log dapat menjadi cara yang tepat untuk mengetahui masalahnya.

      /etc/ssh/sshd_config

      LoginGraceTime 120
      PermitRootLogin yes
      StrictModes yes
      

      Semua parameter ini menentukan beberapa informasi log masuk.

      LoginGraceTime menentukan berapa detik mempertahankan koneksi tanpa berhasil log masuk.

      Mungkin sebaiknya mengatur waktu ini sedikit lebih tinggi dari waktu yang Anda butuhkan untuk log masuk secara normal.

      PermitRootLogin menentukan apakah pengguna root diizinkan untuk log masuk.

      Umumnya, ini harus diubah ke no bila Anda telah membuat akun pengguna yang memiliki akses ke privilese yang ditingkatkan (melalui su atau sudo) dan dapat log masuk melalui ssh.

      strictModes adalah penjaga keamanan yang akan menolak upaya log masuk jika berkas autentikasi dapat dibaca oleh setiap orang.

      Ini mencegah upaya log masuk bila berkas konfigurasi tidak aman.

      /etc/ssh/sshd_config

      X11Forwarding yes
      X11DisplayOffset 10
      

      Parameter ini mengonfigurasi suatu kemampuan yang disebut Penerusan X11. Parameter ini memungkinkan Anda melihat antarmuka pengguna grafis (GUI) sistem jauh di sistem lokal.

      Opsi ini harus diaktifkan di server dan diberikan bersama klien SSH selama koneksi dengan opsi -X.

      Setelah membuat modifikasi, simpan dan tutup berkas dengan mengetikkan CTRL+X dan Y, diikuti dengan ENTER.

      Jika Anda mengubah pengaturan dalam /etc/ssh/sshd_config, pastikan memuat ulang server sshd untuk menerapkan modifikasi Anda:

      • sudo systemctl reload ssh

      Anda harus menguji perubahan secara menyeluruh untuk memastikan perubahan tersebut beroperasi dengan cara yang Anda harapkan.

      Mungkin ada baiknya untuk memiliki beberapa sesi yang aktif saat Anda membuat perubahan. Ini akan memungkinkan Anda mengembalikan konfigurasi jika diperlukan.

      Cara Log Masuk ke SSH dengan Kunci

      Walaupun akan bermanfaat bila dapat log masuk ke sistem jauh menggunakan kata sandi, tetapi jauh lebih baik menyiapkan autentikasi berbasis kunci.

      Bagaimana Cara Kerja Autentikasi Berbasis Kunci?

      Autentikasi berbasis kunci bekerja dengan membuat sepasang kunci: kunci privat dan kunci publik.

      Kunci privat berada di mesin klien yang diamankan dan dirahasiakan.

      Kunci publik dapat diberikan kepada siapa pun atau ditempatkan di server yang Anda ingin akses.

      Bila Anda mencoba menghubungkan dengan pasangan kunci, server akan menggunakan kunci publik untuk membuat pesan kepada komputer klien yang hanya dapat dibaca dengan kunci privat.

      Kemudian, komputer klien mengirim respons yang sesuai kembali ke server dan server akan mengetahui bahwa klien itu sah.

      Keseluruhan proses ini dilakukan secara otomatis setelah Anda menyiapkan kunci.

      Cara Membuat Kunci SSH

      Kunci SSH harus dibuat dari komputer yang ingin Anda gunakan untuk log masuk. Biasanya ini mesin lokal Anda.

      Masukkan yang berikut ini ke dalam baris perintah:

      Tekan enter untuk menerima nilai asali. Kunci Anda akan dibuat di ~/.ssh/id_rsa.pub dan ~/.ssh/id_rsa.

      Ubah ke direktori .ssh dengan mengetikkan:

      Lihatlah izin berkas:

      Output

      -rw-r--r-- 1 demo demo 807 Sep 9 22:15 authorized_keys -rw------- 1 demo demo 1679 Sep 9 23:13 id_rsa -rw-r--r-- 1 demo demo 396 Sep 9 23:13 id_rsa.pub

      Seperti yang Anda lihat, berkas id_rsa hanya dapat dibaca dan dapat ditulis oleh pemiliknya. Beginilah cara menjaga kerahasiaannya.

      Namun, berkas id_rsa.pub, dapat dibagikan dan memiliki izin yang sesuai untuk aktivitas ini.

      Cara Mentransfer Kunci Publik ke Server

      Jika Anda saat ini memiliki akses berbasis kata sandi ke server, Anda dapat menyalin kunci publik ke server itu dengan memberikan perintah ini:

      Ini akan memulai sesi SSH. Setelah memasukkan kata sandi, perintah itu akan menyalin kunci publik Anda ke berkas kunci yang diotorisasi server sehingga akan memungkinkan Anda log masuk tanpa kata sandi.

      Opsi di Pihak Klien

      Ada sejumlah bendera opsional yang dapat Anda pilih saat menghubungkan melalui SSH.

      Sebagian besar mungkin diperlukan untuk mencocokkan pengaturan di konfigurasi sshd hos jauh.

      Misalnya, jika Anda mengubah nomor porta dalam konfigurasi sshd, Anda perlu mencocokkan porta itu di pihak klien dengan mengetikkan:

      • ssh -p port_number remote_host

      Jika Anda hanya ingin mengeksekusi perintah tunggal di sistem jauh, Anda dapat menentukannya di hos seperti ini:

      • ssh remote_host command_to_run

      Anda akan menghubungkan ke mesin jauh, mengautentikasi, dan perintah akan dieksekusi.

      Seperti yang kami katakan sebelumnya, jika penerusan X11 diaktifkan pada kedua komputer, Anda dapat mengakses fungsionalitas itu dengan mengetikkan:

      Asalkan Anda memiliki alat yang sesuai di komputer, program GUI yang Anda gunakan di sistem jauh kini akan membuka jendelanya pada sistem lokal Anda.

      Menonaktifkan Autentikasi Kata Sandi

      Jika telah membuat kunci SSH, Anda dapat menyempurnakan keamanan server dengan menonaktifkan autentikasi hanya-kata-sandi. Selain konsol, satu-satunya cara untuk log masuk ke dalam server Anda adalah melalui kunci privat yang berpasangan dengan kunci publik yang telah Anda instal di server.

      Peringatan: Sebelum melanjutkan langkah ini, pastikan Anda telah menginstal kunci publik ke server Anda. Jika tidak, Anda akan terkunci!

      Sebagai root atau pengguna dengan privilese sudo, buka berkas konfigurasi sshd:

      • sudo nano /etc/ssh/sshd_config

      Temukan baris Password Authentication, dan jadikan bukan komentar dengan menghapus # yang ada di depan. Kemudian, Anda dapat mengubah nilainya menjadi no:

      /etc/ssh/sshd_config

      PasswordAuthentication no
      

      Dua pengaturan lainnya yang tidak perlu dimodifikasi (asalkan Anda belum memodifikasi berkas ini) adalah PubkeyAuthentication dan ChallengeResponseAuthentication. Berkas itu diatur secara asali, dan isinya harus seperti berikut:

      /etc/ssh/sshd_config

      PubkeyAuthentication yes
      ChallengeResponseAuthentication no
      

      Setelah membuat perubahan, simpan dan tutup berkas.

      Sekarang Anda dapat memuat ulang daemon SSH:

      • sudo systemctl reload ssh

      Sekarang autentikasi kata sandi sudah dinonaktifkan, dan server Anda seharusnya hanya dapat diakses melalui autentikasi kunci SSH.

      Kesimpulan

      Mempelajari cara kerja SSH akan sangat berguna, walaupun hal itu cuma aktivitas biasa.

      Karena menggunakan berbagai opsi, Anda akan menemukan fungsionalitas lebih lanjut yang dapat mempermudah Anda. SSH tetap populer karena aman, ringan, dan berguna dalam berbagai situasi.



      Source link