GNU/Linux >> Belajar Linux >  >> Linux

Cara menyalin file dengan aman antara host Linux menggunakan SCP dan SFTP

Baru-baru ini, kami melihat rsync perintah untuk menyinkronkan file antar lokasi, dan kami membahas kesamaan penggunaan dan sintaks saat menduplikasi file dan direktori dengan cp memerintah. Dalam artikel itu, kami melihat memindahkan bit bolak-balik pada kotak yang sama, antar sistem file, atau antar perangkat. Dalam artikel yang akan datang, kita akan melihat lebih lanjut di rsync sebagai alat untuk menjaga sistem file jarak jauh tetap sinkron dengan versi lokal atau cadangan. Dalam artikel ini, saya ingin melihat salah satu alat yang paling berguna dan digunakan di kotak alat sysadmin Linux—scp perintah.

Apa itu SCP?

Salin Aman, atau scp , adalah versi aman dari rcp . yang lebih lama alat (yang masih digunakan, tetapi kurang umum) termasuk dalam rangkaian alat OpenSSH.

OpenSSH dimulai sebagai garpu BSD dari protokol komunikasi aman SSH asli, yang sejak itu dilisensikan ulang sebagai "tidak bebas" dan dengan demikian tidak tersedia secara umum untuk Linux. OpenSSH masih dipertahankan di bawah lisensi BSD dan tersedia untuk berbagai platform. Ini mencakup beberapa alat umum untuk akses jarak jauh yang aman, termasuk pembuatan kunci, scp , dan sftp (versi FTP yang aman, yang akan kita bahas sebentar lagi).

Baru-baru ini, pengembang OpenSSH telah mengindikasikan bahwa mereka mempertimbangkan scp untuk ditinggalkan (mereka percaya itu adalah "Usang, tidak fleksibel dan tidak mudah diperbaiki"). Tidak jelas kapan itu akan berhenti tersedia di rilis OpenSSH mendatang, meskipun sulit untuk membayangkan bahwa itu akan dihentikan dalam waktu dekat.

Gunakan SCP

Kegunaan scp terletak pada kesederhanaannya. Saya menggunakannya untuk memindahkan file dengan cepat ke sistem file jarak jauh dari shell:

skipworthy ~ scp ./enable/foo/testfoo showme:/home/skipworthy/enable

skipworthy@showme's password:

testfoo 100% 25 8.0KB/s 00:00

Mudah sekali. Saya juga bisa mendapatkan file dari lokasi yang jauh:

skipworthy ~ scp showme:/home/skipworthy/enable/demofoo ~/enable/

skipworthy@showme's password:

demofoo 100% 0 0.0KB/s 00:00

 skipworthy ~ ls ./enable

bar demofoo foo

Opsi koneksi yang tersedia sama dengan ssh . Misalnya:

skipworthy ~ scp -P 2020 -i ~/.ssh/id_rsa ./test.txt showme:/home/skipworthy/enable/

test.txt 100% 0 0.0KB/s 00:00    

-P menentukan port untuk ssh koneksi, -i menentukan ssh kunci id untuk digunakan untuk otentikasi:Kedua opsi ini berguna untuk skrip. Perhatikan bahwa scp -P berbeda dari ssh -p untuk menentukan port. Pada contoh di atas, saya mengatur lokasi ssh kunci (~/.ssh/id_rsa )—yang juga saya buat menggunakan toolkit OpenSSH—untuk mengautentikasi akses ke perangkat jarak jauh. Pelajari tentang salinan file SSH di sini.

Jadi Anda dapat melihat scp adalah alat yang sangat berguna untuk dimiliki di ujung jari Anda. Ada beberapa diskusi tentang kebijaksanaan menggunakan alat ini di lingkungan yang aman, jadi YMMV. Saya sarankan untuk membaca dan memutuskan sendiri.

[ Anda mungkin juga menyukai: Alat Sysadmin:Menggunakan rsync untuk mengelola pencadangan, pemulihan, dan sinkronisasi file ]

Alternatif

Bagaimana jika, karena alasan apa pun, kami tidak dapat menggunakan scp ? Saya merekomendasikan dua opsi lain yang cukup mudah digunakan:rsync , yang telah kita bicarakan di sini dan akan dibahas lebih mendalam di artikel lain, dan sftp . Meskipun tidak satu pun dari opsi ini yang senyaman scp , keduanya memiliki beberapa fitur yang berguna.

sftp kurang lebih seperti itu:Secure FTP. Ini bertindak seperti FTP melalui koneksi yang dikelola SSH. Meskipun tidak sesederhana untuk digunakan sebagai scp "satu dan selesai" perintah, ia menawarkan berbagai opsi sistem file yang lebih canggih dan kemampuan untuk terhubung ke sistem file jarak jauh secara interaktif. Itu memang mengharuskan sistem file target dikonfigurasi untuk sftp akses.

Mari terhubung ke sftp server secara interaktif:

skipworthy ~ sftp enable@ganymede

enable@ganymede's password:

Connected to ganymede.

sftp> pwd

Remote working directory: /upload

sftp> mkdir test

sftp> ls -al

drwxr-xr-x 3 1002 1002 18 Nov 24 21:53 .

drwxr-xr-x 3 0 1002 20 Nov 24 21:33 ..

drwxr-xr-x 2 1002 1002 6 Nov 24 21:53 test

Jika kita menekan Tab dua kali, kita dapat melihat daftar perintah yang tersedia di shell:

sftp>

bye cd chdir chgrp chmod chown df dir       

exit get help lcd lchdir lls lmkdir ln        

lpwd ls lumask mkdir mget mput progress put       

pwd quit reget rename reput rm rmdir symlink   

version ! ?         

Jadi Anda dapat melihat kemungkinan untuk berinteraksi dengan sistem file jarak jauh. Sekali lagi, kelemahan utama adalah target harus dikonfigurasi untuk sftp akses dan akses ke direktori tertentu harus dikonfigurasi dan dibatasi oleh admin sistem itu. Ini menjadikannya opsi yang lebih aman, jika kurang nyaman, daripada scp . Juga, perhatikan bahwa meskipun tidak mungkin melakukan transfer file dadakan seperti scp , dimungkinkan untuk menulis skrip dan menyisipkan alias shell untuk membuat ini bekerja lebih lancar jika itu masalah Anda.

[ Memikirkan keamanan? Lihat panduan gratis ini untuk meningkatkan keamanan cloud hybrid dan melindungi bisnis Anda. ] 

Menutup

Catatan akhir:Kedua alat ini bergantung pada kotak alat SSH, yang merupakan bagian yang sangat penting dari administrasi sistem Linux, jadi saya sangat menyarankan untuk membiasakan diri dengannya. Pertimbangkan artikel luar biasa ini oleh penulis Enable Sysadmin:

  • Bagaimana SSH membangun komunikasi yang aman
  • Delapan cara untuk melindungi akses SSH di sistem Anda
  • SSH tanpa sandi menggunakan pasangan kunci publik-swasta

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

  2. Cara Mengunggah atau Mengunduh File/Direktori Menggunakan sFTP di Linux

  3. Cara Mentransfer File dengan Aman Menggunakan SCP

  1. Mentransfer File dan Folder Antar Komputer dengan Aman Menggunakan Croc

  2. Cara Mentransfer File Antar Server di Linux menggunakan SCP dan FTP

  3. Cara Mentransfer file dengan aman menggunakan Perintah SCP di Linux

  1. Salin file antara Linux dan FreeDOS

  2. Cara Menyalin File dan Direktori di Linux

  3. Cara menyalin banyak file secara bersamaan menggunakan scp