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