GNU/Linux >> Belajar Linux >  >> Linux

Mengapa 'sshpass' bukan cara yang tepat untuk mengotomatisasi transfer file di Linux

Pertanyaan: Saya telah diberi tugas untuk mengotomatiskan transfer file antarmesin jarak jauh menggunakan scp. Tapi saya tidak yakin bagaimana memberikan kata sandi sebagai parameter ke scp memerintah. Salah satu teman saya menyarankan untuk menggunakan ‘sshpass ‘ perintah (bisa menggunakan kata sandi sebagai argumen), tetapi bos saya mengatakan “sshpass bukanlah cara yang benar untuk melakukannya dan tidak aman “. Apa yang Anda sarankan?

– Ravi

Jawaban:

Ravi, temanmu punya jawaban untuk pertanyaanmu, tapi bosmu benar . ‘sshpass ‘ utility menggunakan kata sandi sebagai argumen, tetapi kurang aman. Sebagai gantinya, Anda harus menggunakan kunci SSH untuk transfer file yang aman.

Mari kita coba kedua metode tersebut dan lihat mana yang lebih aman.

Menggunakan sshpass

Instal ‘sshpass ' menggunakan perintah di bawah ini:

$ yum install sshpass

Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sshpass.x86_64 0:1.05-1.el5 set to be updated
--> Finished Dependency Resolution

Setelah terinstal, Anda dapat menggunakannya seperti di bawah ini:

sshpass -p "password" scp file.txt user@remote_machine:

Perhatian: Karena sandi disebutkan dalam perintah, sandi dapat dilihat oleh pengguna lain yang masuk ke mesin menggunakan ‘w ' memerintah. Untuk mencegahnya, Anda dapat menyimpan kata sandi dalam file dan meneruskan file tersebut sebagai argumen ke perintah (ditampilkan di bawah):

$ echo "password" > passfile.txt
$ chmod 600 passfile.txt
$ sshpass -f passfile.txt scp file.txt user@remote_machine:

Perhatian: Sandi masih dapat dilacak dari file log atau riwayat.

Jadi keputusannya adalah “sshpass” bukan metode yang aman . Sebagai gantinya, seperti yang disarankan atasan Anda, Anda harus menggunakan kunci SSH Aman untuk koneksi tanpa kata sandi.

Menggunakan kunci ssh yang aman

Hasilkan ssh-keys pada mesin sumber seperti di bawah ini:

[machine-A ]$ ssh-keygen -t rsa
[machine-A ]$ scp ~/.ssh/id_rsa.pub user@machine-B:.ssh/authorized_keys

Itu saja, Anda telah menyiapkan koneksi tanpa kata sandi ssh antara mesin-A dan mesin-B. Coba transfer file tanpa perlu memasukkan kata sandi:

$ scp file.txt user@remote_machine:

Selesai! Ravi, terkadang BOSSES benar


Linux
  1. Salin file di terminal Linux

  2. Ganti nama file di terminal Linux

  3. Pindahkan file di terminal Linux

  1. Cara Meningkatkan ke Linux Mint 20.3:Cara yang Benar

  2. Di mana file header <conio.h> di Linux? Mengapa saya tidak dapat menemukan <conio.h>?

  3. Mengapa fungsi tutup disebut rilis di `struct file_operations` di kernel Linux?

  1. Perintah sed Linux tidak mengubah file target

  2. Mengapa Windows tidak mengenali file di dalam partisi Linux?

  3. Di Linux, apakah mungkin untuk mengenkripsi folder/partisi sedemikian rupa sehingga tidak dapat diakses oleh siapa pun tanpa kata sandi?