GNU/Linux >> Belajar Linux >  >> Linux

Cara menghubungkan dan berbagi data antara dua sistem Linux

Saya mendapat permintaan yang menarik (bukan dari jomblo di daerah saya). Salah satu pembaca saya bertanya kepada saya, bagaimana cara menghubungkan dua kotak Linux - saya kira untuk tujuan berbagi. Ini adalah topik yang sering saya sentuh, tetapi seringkali secara tidak langsung. Seperti yang dikatakan Komandan Lasard dari Akademi Kepolisian, ada banyak, banyak, banyak, banyak cara berbeda untuk melakukan ini.

Jadi mungkin sudah waktunya untuk tutorial yang tepat. Saya akan menunjukkan kepada Anda beberapa cara umum dan kuat untuk membuat dua sistem Linux berkomunikasi melalui jaringan. Kami akan melakukannya di baris perintah, lalu pindah ke pengelola file, dan akhirnya, juga melakukan pencadangan data jarak jauh menggunakan alat GUI yang ramah. Mari kita mulai.

Baris perintah:SSH, SCP

Cara "termudah" untuk menghubungkan dua sistem Linux adalah menggunakan protokol SSH. Nyaman, aman, dan tersedia di hampir semua sistem Linux. Sekarang, dalam beberapa kasus [sic] jarak jauh, mungkin ada masalah interoperabilitas karena versi perangkat lunak yang tidak kompatibel di sana-sini, tetapi secara keseluruhan, Anda seharusnya tidak mengalami masalah.

Satu host bertindak sebagai server (membuka port TCP 22 secara default). Yang lain bertindak sebagai klien. Anda dapat menggunakan utilitas baris perintah SSH untuk membuat koneksi ke server dan bahkan menjalankan perintah di sana, jauh seperti lokal, termasuk tugas administratif (asalkan Anda memiliki izin yang tepat). Atau Anda dapat menggunakan SCP, untuk menyalin file dengan aman dari klien ke server, atau bahkan mengambil file dari server kembali ke host klien Anda.

Pengaturan server SSH

Saya akan mendemonstrasikan dengan server Fedora 32 dan klien Kubuntu 18.04. Pertama, kita perlu menginstal dan mengkonfigurasi perangkat lunak layanan SSH. Meskipun instruksi mungkin sedikit berbeda dari distro ke distro, sebagian besar, apa yang Anda lihat di sini cukup banyak yang Anda butuhkan. Satu perbedaan penting adalah nama paket yang digunakan untuk mengidentifikasi server SSH - di Fedora, ia datang sebagai openssh-server. Jika Anda mencari sshd yang ada (ssh daemon =service), Anda tidak akan mendapatkan apa-apa.

Tidak ada kecocokan untuk argumen:sshd
Kesalahan:Tidak dapat menemukan kecocokan:sshd

sudo dnf search ssh
...
openssh-ldap.x86_64 :Dukungan LDAP untuk daemon server SSH open source
openssh-server.x86_64 :Daemon server SSH open source
openssh.x86_64 :Implementasi open source dari protokol SSH versi 2
...

Setelah openssh-server diinstal, Anda dapat memulai layanan. Biasanya, ini akan berjalan saat startup secara default, tetapi Anda juga selalu dapat memulai atau memulai ulang secara manual (baik melalui perintah atau skrip layanan startup), namun, itu tidak akan berjalan jika tidak memiliki kunci SSH (di mana host dapat diidentifikasi secara unik).

sshd
sshd re-exec membutuhkan eksekusi dengan jalur absolut

/usr/sbin/sshd
/etc/ssh/sshd_config:Izin ditolak

sudo /usr/sbin/sshd
sshd:tidak ada kunci host yang tersedia -- keluar.

Kita perlu membuat hostkey:

sudo ssh-keygen -A
ssh-keygen:menghasilkan kunci host baru:RSA DSA ECDSA ED25519

Dan sekarang, openssh-server akan berjalan:

sudo /usr/sbin/sshd

ps -ef|grep ssh
roger 1832 1791 0 15:03 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/gnome-session"
root 3640 1675 0 15:17 ? 00:00:00 sshd:/usr/sbin/sshd [pendengar] 0 dari 10-100 startup

Penyiapan jaringan

Saya akan menunjukkan cara menghubungkan dua kotak di jaringan lokal. Syarat dan ketentuan berlaku. Anda akan membutuhkan dua host agar dapat dijangkau (firewall et al). Membuka port jaringan dapat memiliki implikasi keamanan - lebih sedikit pada jaringan lokal, tetapi lebih pada jaringan publik, seperti Internetz. Namun, saya tidak di sini untuk membahas keamanan perangkat Anda, hanya untuk menunjukkan kepada Anda bagaimana menghubungkan dua kotak, dalam pengaturan LAN Anda. Namun, bagi mereka yang paling penasaran, Anda dapat memperkuat SSH, termasuk akses non-root, penggunaan port non-default, pembatasan login, berbagai batasan lainnya, dan yang lainnya.

Sekarang, tuliskan alamat IP atau nama host dari mesin server Linux Anda. Pada distro "modern", menemukan alamat IP bukanlah hal yang sepele, karena netstat dan ifconfig sudah tidak keren lagi, tetapi bisa dilakukan. Kami akan membutuhkan ini untuk bagian klien dari konektivitas.

Baris perintah:SSH, SCP (lanjutan)

Di klien, sambungkan ke server Anda. Sintaksnya sebagai berikut:

ssh namapengguna@namahost

Jadi, praktis, dalam contoh saya, ini - perhatikan peringatan koneksi pertama kali:

ssh [email protected]
Keaslian host '192.168.2.107 (192.168.2.107)' tidak dapat ditentukan.
Sidik jari kunci ECDSA adalah SHA256:8Qk//cbC0v3BLuU1FQ/vjABNN34nw1sWANY+hoycHiE.
Yakin ingin melanjutkan koneksi (ya/tidak)? ya
Peringatan:Menambahkan '192.168.2.107' (ECDSA) secara permanen ke daftar host yang dikenal.
sandi [email protected]:
Login terakhir:Kam 17 Sep 15:03:38 2020

Sekarang, Anda "masuk" - Anda sekarang dapat melakukan berbagai hal di server Anda. Tetapi kami juga ingin dapat menyalin data ke sana kemari. Mari kita gunakan SCP. Sintaksnya sebagai berikut:

scp source username@hostname:destination

Perintah scp juga mengambil berbagai argumen yang berguna - Anda dapat mengulang melalui folder, mempertahankan izin, terhubung ke port non-default dan banyak lagi. Menariknya, mungkin ironisnya, ssh menggunakan huruf kecil p untuk menentukan port (misalnya:-p 2222), sedangkan scp menggunakan huruf besar p (misalnya:-P 2223). Dengan scp, huruf kecil p digunakan untuk mempertahankan mode dan waktu file asli. Di sana.

scp -r /home/igor/Wallpapers/ [email protected]:/home/roger/Pictures/
[email protected] kata sandi:
wallhaven-156819.jpg 100% 166KB 500.8KB /s 00:00
wallhaven-448391.jpg 100% 1606KB 3.0MB/s 00:00
wallhaven-12679.jpg 100% 501KB 5.4MB/s 00:00
...

Pada contoh di atas, kami secara rekursif menyalin konten direktori Wallpaper ke folder Pictures di server kami. Anda selalu dapat membalikkan arah aliran data (sumber, tujuan).

SSH tanpa pengawasan, konektivitas SCP

Seperti yang mungkin telah Anda catat di atas, dalam contoh saya, saya dimintai kata sandi. Ini bagus untuk pekerjaan interaktif, tetapi bisa merepotkan jika Anda ingin menjalankan pencadangan tanpa pengawasan, seperti pekerjaan terjadwal semalam. Untuk itu, Anda perlu mengonfigurasi pasangan kunci publik-swasta SSH. Tutorial tertaut menjelaskan ini dengan baik.

Baris perintah:rsync

Kasus penggunaan yang paling jelas untuk konektivitas antara dua host adalah untuk tujuan pencadangan data. Misalnya, Anda ingin menyalin direktori home di workstation Anda ke server arsip. Dalam hal pencadangan, rsync adalah alat yang sangat baik untuk pekerjaan itu. Lebih baik lagi, Anda sudah memiliki panduan dari penulis penting Anda, yang menjelaskan cara menggunakan rsync untuk mengonfigurasi pencadangan data.

Kita perlu memasukkan komponen SSH ke dalam persamaan. Rsync mendukung SSH dengan mulus. Dengan kata lain, semuanya tetap sama, kecuali bagaimana Anda mendefinisikan tujuan. Sintaks SSH/SCP untuk menyelamatkan:

rsync source username@hostname:destination

Misalnya:

rsync -avs --delete -i -h /home/igor/Wallpapers/ [email protected]:/home/roger/Pictures
[email protected] Kata sandi:
mengirim daftar file tambahan
*menghapus Screenshot_20200516-125442.png
*menghapus Screenshot_20200516-125302.png
*menghapus Screenshot_200516-125252.png
...
*menghapus QEMU Virgil.txt
*menghapus Fedora 32.txt
.d..tp..... ./

dikirim 11,16M byte diterima 7,94K byte 2,03M byte/dtk
ukuran total 11,15M, percepatan 1,00

Sekali lagi, kami membutuhkan kunci untuk konektivitas tanpa batas.

Konektivitas GUI:Pengelola file lumba-lumba

Seperti yang saya katakan, ada banyak cara berbeda untuk melakukan ini. Saya akan mendemonstrasikan dengan Dolphin, pengelola file default di desktop Plasma. Ini secara asli mendukung konektivitas SSH, sehingga pada dasarnya Anda dapat melakukan apa yang kami lakukan sebelumnya, kecuali Anda sekarang melakukannya melalui GUI daripada di baris perintah. Saya akan mendedikasikan artikel terpisah untuk detail yang lebih baik tentang penggunaan Dolphin &SSH, jadi untuk saat ini, inilah versi singkatnya.

Dolphin menggunakan protokol FISH untuk membuat koneksi ke host jarak jauh. Di Dolphin, tekan Ctrl + L atau klik dua kali pada baris lokasi untuk membuka bilah alamat, lalu tulis:

ikan://namapengguna@tujuan

Dolphin sekarang akan meminta kata sandi - yang dapat Anda simpan, dan hanya itu. Anda terhubung ke host jarak jauh, dan Anda dapat melakukan operasi file mana pun (dalam izin SSH yang dimiliki pengguna Anda dan diizinkan oleh server).

Pencadangan GUI:Grsync

Kami sudah membicarakan ini sebelumnya. Grsync adalah utilitas frontend rsync yang sangat baik - favorit saya. Anda dapat menggunakannya untuk menentukan satu atau beberapa tugas replikasi data, termasuk berbagai opsi dan pengecualian. Di baris tujuan, Anda perlu memasukkan entri username@hostname:destination, seperti yang akan Anda lakukan dengan rsync di jendela terminal.

Anda kemudian dapat mensimulasikan (menjalankan kering) operasi, atau terhubung secara nyata - dengan bonus tambahan bahwa Anda dapat menyimpan kredensial koneksi, sehingga Anda dapat menjalankan kembali tugas tanpa harus mengotentikasi lagi secara manual. Sempurna untuk tugas pencadangan data terjadwal.

Kesimpulan

Nah, itu dia. Sekarang Anda memiliki empat cara berbeda untuk menghubungkan mesin Linux Anda, termasuk baris perintah dan metode GUI, otentikasi berbasis kata sandi dan tanpa kata sandi, pencadangan data, dan beberapa lainnya. Di balik layar, itu semua adalah SSH, tapi itulah keindahannya.

Saya harap Anda menemukan artikel ini bermanfaat dan praktis. Jika Anda ingin memastikan bahwa kotak Linux Anda berbicara satu sama lain dengan lancar, Anda memiliki alat untuk menjadi bos Anda sendiri. Bagi mereka yang percaya diri dengan baris perintah, ssh, scp dan rsync melakukan pekerjaan itu, tetapi jika Anda lebih tertarik pada aksi titik-'n'-klik mouse yang sederhana, Dolphin dan Grsync menawarkan fungsionalitas yang diperlukan. Sekarang, daftarnya tidak berakhir di situ. Anda juga dapat menggunakan FTP, SFTP - atau program seperti lubang cacing, dan beberapa pengelola file Linux lainnya juga menawarkan fungsionalitas SSH dan Rsync, tapi itu topik untuk artikel lain. Dan itu saja untuk hari ini.


Linux
  1. Linux – Bagaimana Cara Beralih Antara Sesi Tty dan Xorg?

  2. Linux – Bagikan File Antara Linux Host Dan Windows Guest?

  3. Bagaimana Menghubungkan Dan Mengirim Data Ke Port Serial Bluetooth Di Linux?

  1. Buat koneksi SSH antara Windows dan Linux

  2. Bagikan file antara komputer Linux dan Windows

  3. Cara Mentransfer File Antara Dua Komputer menggunakan Perintah nc dan pv

  1. Cara Memasang dan Melepas Sistem File di Linux

  2. Cara berbagi dan mentransfer file antara Linux dan Windows

  3. Instal Dropbox Untuk Berbagi File Antara Linux Dan Windows