การทำสคริป copy file ผ่าน ssh โดยกุญแจเข้ารหัส (ไม่ต้องถาม password)
วัตถุประสงค์
ต้องการทำสคริปเพื่อก็อปปี้ไฟล์จากเครื่อง Server ไปเก็บไว้ยัง Backup Server ถ้าเราทำแบบแมนนวล เวลารันคำสคิป ก็ต้องคีย์ password ssh แต่ถ้าไม่อยากคีย์ก็ทำเป็น Text file ไว้แล้วให้สคิปไปเช็ค password กับ Text file นั้น
การทำแบบนี้มีโอกาสโดนขโมยอ่าน password ได้ ดังนั้น จึงใช้วิธีการ Encryption password ไว้ ในรูปแบบกุญแจ 2 ลูก ลูกนึงวางไว้ที่เครื่อง Server ต้นทาง และอีกลูกนึงวางไว้ที่ Backup Server
วิธีการ
1. Key Encryption การทำกุญแจเข้ารหัสพาสเวิร์ด มีขั้นตอนดังนี้
เครื่อง Server
ใช้รูปแบบคำสั่ง ด้านล่าง
#ssh-keygen -t rsa -b 4096 ค่าปกติ 2048 bit
จะมี 2 ไฟล์ Generate ขึ้นมา ที่ /root/.ssh/ ดูภาพด้านล่าง
id_rsa
id_rsa.pub
เสร็จแล้วให้ก็อปปี้ไฟล์ id_rsa.pub ไปยังเครื่อง Backup Server ด้วยคำสั่ง
scp id_rsa.pub user@192.168.x.x:/path/backup
เครื่อง Backup Server
เข้าไปยัง path ที่เก็บไฟล์ id_rsa.pub แล้ว convert ไฟล์ไปยัง authorized_keys ที่ /root/.ssh/ ด้วยคำสั่ง
ต่อไปนี้
cp authorized_keys authorized_keys.bak ก็อปปี้ไฟล์กุญแจไว้ก่อน
cat id_rsa.pub >> /root/.ssh/authorized_keys
cat authorized_keys เพื่อดูคีย์ที่เราเพิ่มเข้าไป มีการเข้ารหัสไว้
ทดสอบใช้งาน
กลับไปที่เครื่อง Server แล้วลองก็อปปี้ไฟล์ ไปเก็บไว้ยัง Backup Server ด้วยคำสั่งเดิมอีกคร้้ง
scp test.txt user@192.168.x.x:/path/backup
วิธีการส่งคำสั่งไปรันที่เครืองรีโมทย์
ssh 192.168.10.xx "command 1 && command2"
ssh 192.168.10.xx "update && date"
จะเห็นว่าไม่มีการถาม password เหมือนตอนแรก
2. ทำสคริปเพื่อให้ก็อปปี้ไฟล์จากเครื่อง Server ไปยังเครื่อง Backup Server ดังนี้
crontab -e
ใส่สคริปให้ทำงาน เวลา 20:00 น. ของทุกวัน
0 20 * * * scp -r /etc/postfix user@192.168.xx.xx:/pathe/backup
เรื่องที่เกี่ยวข้อง
1. คำสั่ง scp
2. Key Encryption
จะเห็นว่าไม่มีการถาม password เหมือนตอนแรก
2. ทำสคริปเพื่อให้ก็อปปี้ไฟล์จากเครื่อง Server ไปยังเครื่อง Backup Server ดังนี้
crontab -e
ใส่สคริปให้ทำงาน เวลา 20:00 น. ของทุกวัน
0 20 * * * scp -r /etc/postfix user@192.168.xx.xx:/pathe/backup
เรื่องที่เกี่ยวข้อง
1. คำสั่ง scp
2. Key Encryption
No comments:
Post a Comment