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