Cara Menyalin File Secara Jauh Dari SSH Tanpa Memasukkan Kata Sandi Anda
SSH adalah penyelamat ketika Anda perlu mengelola komputer dari jarak jauh, tetapi tahukah Anda bahwa Anda juga dapat mengunggah dan mengunduh file? Menggunakan kunci SSH, Anda dapat melewati keharusan memasukkan kata sandi dan menggunakannya untuk skrip!
Proses ini bekerja pada Linux dan Mac OS, asalkan mereka dikonfigurasi dengan benar untuk akses SSH. Jika Anda menggunakan Windows, Anda dapat menggunakan Cygwin untuk mendapatkan fungsionalitas seperti Linux, dan dengan sedikit penyesuaian, SSH juga akan berjalan.
Menyalin File Melalui SSH
Salinan aman adalah perintah yang sangat berguna, dan sangat mudah digunakan. Format dasar dari perintah ini adalah sebagai berikut:
scp [options] original_file destination_file
Penendang terbesar adalah cara memformat bagian jarak jauh. Ketika Anda menangani file jarak jauh, Anda perlu melakukannya dengan cara berikut:
user @ server: path / ke / file
Server dapat berupa URL atau alamat IP. Ini diikuti oleh titik dua, lalu jalur ke file atau folder yang dimaksud. Mari kita lihat sebuah contoh.
scp -P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt
Perintah ini menampilkan bendera [-P] (perhatikan bahwa ini adalah huruf kapital P). Ini memungkinkan saya untuk menentukan nomor port alih-alih standar 22. Ini penting bagi saya karena cara saya mengkonfigurasi sistem saya.
Selanjutnya, file asli saya adalah "url.txt" yang ada di dalam direktori yang disebut "Desktop". File tujuan ada di "~ / Desktop / url.txt" yang sama dengan "/user/yatri/Desktop/url.txt". Perintah ini dijalankan oleh pengguna "yatri" di komputer jarak jauh "192.168.1.50".
Bagaimana Jika Anda perlu melakukan yang sebaliknya? Anda dapat menyalin file dari server jarak jauh dengan cara yang sama.
Di sini, saya telah menyalin file dari folder "~ / Desktop /" komputer jarak jauh ke folder "Desktop" komputer saya.
Untuk menyalin seluruh direktori, Anda harus menggunakan flag [-r] (perhatikan bahwa ini adalah huruf kecil r).
Anda juga dapat menggabungkan bendera. Dari pada
scp -P -r…
Anda bisa melakukannya
scp -Pr…
Bagian tersulit di sini adalah bahwa penyelesaian tab tidak selalu bekerja, jadi sangat membantu untuk memiliki terminal lain dengan sesi SSH berjalan sehingga Anda tahu di mana harus meletakkan sesuatu.
SSH dan SCP Tanpa Kata Sandi
Salinan aman sangat bagus. Anda dapat memasukkannya ke dalam skrip dan membuatnya melakukan backup ke komputer jarak jauh. Masalahnya adalah Anda mungkin tidak selalu ada untuk memasukkan kata sandi. Dan, jujur saja, sungguh menyusahkan memasukkan kata sandi Anda ke komputer jarak jauh yang jelas-jelas Anda miliki sepanjang waktu.
Nah, kita bisa berkeliling menggunakan kata sandi dengan menggunakan file kunci. Kami dapat meminta komputer membuat dua file utama - satu publik yang dimiliki pada server jarak jauh, dan satu pribadi yang ada di komputer Anda dan perlu diamankan - dan ini akan digunakan sebagai ganti kata sandi. Cukup nyaman, benar?
Di komputer Anda, masukkan perintah berikut:
ssh-keygen -t rsa
Ini akan menghasilkan dua kunci dan meletakkannya di:
~ / .ssh /
dengan nama "id_rsa" untuk kunci pribadi Anda, dan "id_rsa.pub" untuk kunci publik Anda.
Setelah memasukkan perintah, Anda akan ditanya di mana menyimpan kunci. Anda dapat menekan Enter untuk menggunakan default yang disebutkan di atas.
Selanjutnya, Anda akan diminta memasukkan kata sandi. Tekan Enter untuk membiarkannya kosong, lalu lakukan lagi ketika meminta konfirmasi. Langkah selanjutnya adalah menyalin file kunci publik ke komputer jarak jauh Anda. Anda dapat menggunakan scp untuk melakukan ini:
Tujuan untuk kunci publik Anda ada di server jarak jauh, dalam file berikut:
~ / .ssh / official_keys2
Kunci publik selanjutnya dapat ditambahkan ke file ini, seperti file ~ / .ssh / known_hosts. Ini berarti bahwa jika Anda ingin menambahkan kunci publik lain untuk akun Anda di server ini, Anda akan menyalin konten dari file id_rsa.pub kedua ke baris baru pada file Author_keys2 yang ada.
Pertimbangan Keamanan
Bukankah ini tidak seaman kata sandi?
Secara praktis, tidak juga. Kunci pribadi yang dihasilkan disimpan di komputer yang Anda gunakan, dan tidak pernah ditransfer, bahkan untuk diverifikasi. Kunci pribadi ini HANYA cocok dengan SATU kunci publik itu, dan koneksi harus dimulai dari komputer yang memiliki kunci pribadi. RSA cukup aman dan menggunakan panjang 2048 bit secara default.
Secara teori sebenarnya mirip dengan menggunakan kata sandi Anda. Jika seseorang mengetahui kata sandi Anda, keamanan Anda keluar dari jendela. Jika seseorang memiliki file kunci pribadi Anda, maka keamanan hilang ke komputer mana pun yang memiliki kunci publik yang cocok, tetapi mereka membutuhkan akses ke komputer Anda untuk mendapatkannya.
Bisakah ini lebih aman?
Anda dapat menggabungkan kata sandi dengan file kunci. Ikuti langkah-langkah di atas, tetapi masukkan frasa sandi yang kuat. Sekarang, ketika Anda terhubung melalui SSH atau menggunakan SCP, Anda akan memerlukan file kunci pribadi yang tepat sebaik frasa sandi yang tepat.
Setelah Anda memasukkan frasa sandi satu kali, Anda tidak akan diminta lagi sampai kata sandi ditutup. Itu berarti bahwa pertama kali Anda SSH / SCP, Anda harus memasukkan kata sandi Anda, tetapi semua tindakan selanjutnya tidak memerlukannya. Setelah Anda keluar dari komputer Anda (bukan yang remote) atau menutup jendela terminal Anda, maka Anda harus memasukkannya lagi. Dengan cara ini, Anda tidak benar-benar mengorbankan keamanan, tetapi Anda juga tidak dilecehkan untuk kata sandi sepanjang waktu.
Dapatkah saya menggunakan kembali pasangan kunci publik / pribadi?
Ini ide yang sangat buruk. Jika seseorang menemukan kata sandi Anda, dan Anda menggunakan kata sandi yang sama untuk semua akun Anda, maka mereka sekarang memiliki akses ke semua akun itu. Demikian pula, file kunci pribadi Anda juga sangat rahasia dan penting. (Untuk informasi lebih lanjut, lihat Cara Memulihkan Setelah Email Anda Kata Sandi Diganggu)
Yang terbaik adalah membuat pasangan kunci baru untuk setiap komputer dan akun yang ingin Anda tautkan. Dengan begitu, jika salah satu kunci pribadi Anda ketahuan, maka Anda hanya akan berkompromi dengan satu akun di satu komputer jarak jauh.
Penting juga untuk dicatat bahwa semua kunci pribadi Anda disimpan di tempat yang sama: di ~ / .ssh / di komputer Anda, Anda dapat menggunakan TrueCrypt untuk membuat wadah yang aman dan terenkripsi, kemudian membuat symlink di ~ / .ssh Anda / direktori. Bergantung pada apa yang saya lakukan, saya menggunakan metode super-paranoid super-secure ini untuk menenangkan pikiran saya.
Sudahkah Anda menggunakan SCP dalam skrip apa pun? Apakah Anda menggunakan file kunci, bukan kata sandi? Bagikan keahlian Anda sendiri dengan pembaca lain di komentar!