Computer >> คอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

วิธี SSH ไปยังเซิร์ฟเวอร์ระยะไกลโดยไม่ต้องป้อนรหัสผ่านทุกครั้ง

ภาพรวมนี้จะอธิบายวิธีการ ssh ไปยังเซิร์ฟเวอร์ระยะไกลและทำการเชื่อมต่อโดยไม่ต้องป้อนรหัสผ่าน

ฉันต้องการ SSH จากระยะไกลไปยังเซิร์ฟเวอร์ Linux ของฉันค่อนข้างบ่อย และเป็นการเจ็บปวดที่ต้องจำรหัสผ่านจำนวนมากและพิมพ์ทุกครั้งที่ต้องการเข้าสู่ระบบ ฉันเพิ่งค้นพบวิธีที่เรียบร้อยในการสามารถใช้ SSH ในเซิร์ฟเวอร์ของฉันได้โดยไม่ต้องพิมพ์ ในรหัสผ่าน OpenSSH ยังอนุญาตให้คุณรันคำสั่งจากระยะไกล และไม่ต้องป้อนรหัสผ่านในขณะทำเช่นนั้น หมายความว่าฉันสามารถเรียกใช้งานอัตโนมัติบางอย่างจากระยะไกลได้ อีกครั้งนี้จะมีประโยชน์มาก สำหรับผู้ที่ถากถางถากถางวิธีนี้ค่อนข้างปลอดภัย อันที่จริง ในความคิดของฉัน มันอาจจะปลอดภัยกว่าการป้อนรหัสผ่าน เริ่มต้นด้วยการตั้งค่าการเชื่อมต่อแบบไม่ต้องใช้รหัสผ่านกับเซิร์ฟเวอร์ระยะไกล โปรดทราบว่ากระบวนการนี้จะใช้ได้เฉพาะกับเครื่อง Linux หรือ UNIX เท่านั้น กระบวนการนี้ค่อนข้างตรงไปตรงมา

ขั้นตอนแรกคือการสร้างกุญแจสาธารณะเพื่อรับรองความถูกต้องกับเซิร์ฟเวอร์ เปิดเชลล์เทอร์มินัลบนเดสก์ท็อป Linux ของคุณและเรียกใช้คำสั่งต่อไปนี้:

# ssh-keygen -t rsa
กำลังสร้างคู่คีย์ rsa สาธารณะ/ส่วนตัว
ป้อนไฟล์ที่จะบันทึกคีย์ (/home/calvin/.ssh/id_rsa):
ป้อนข้อความรหัสผ่าน (เว้นว่างไว้โดยไม่มีข้อความรหัสผ่าน ):
ป้อนข้อความรหัสผ่านเดิมอีกครั้ง:
ข้อมูลประจำตัวของคุณได้รับการบันทึกไว้ใน /home/calvin/.ssh/id_rsa.
คีย์สาธารณะของคุณได้รับการบันทึกใน /home/calvin/.ssh/ id_rsa.pub.

ขั้นตอนนี้จะสร้างคีย์สาธารณะและจัดเก็บไว้ในไฟล์ /home/calvin/.ssh/id_rsa.pub . เมื่อถูกถามว่าคุณต้องการเขียนคีย์ไปยังไฟล์ใด เพียงกด Enter เพื่อเลือกตัวเลือกที่แนะนำ ในทำนองเดียวกัน เมื่อได้รับข้อความรหัสผ่าน ให้กดปุ่ม Enter สองครั้ง ไฟล์นี้ถูกจัดเก็บไว้ในโฮมไดเร็กทอรีของคุณใน .ssh โฟลเดอร์ที่เก็บไฟล์การกำหนดค่าของเซิร์ฟเวอร์ SSH ทั้งหมด ดังนั้น ต่อไป คุณต้องคัดลอกไฟล์นี้ไปยังเซิร์ฟเวอร์ที่คุณต้องการให้สามารถใช้ SSH ได้โดยไม่ต้องใช้รหัสผ่าน

# scp ~/.ssh/id_rsa.pub username@remoteserver.com:/home/username/

แทนที่ทั้งสองอินสแตนซ์ของ ชื่อผู้ใช้ ในคำสั่งด้านบนด้วยชื่อผู้ใช้ที่คุณใช้เพื่อเข้าสู่ระบบเซิร์ฟเวอร์ระยะไกล และ remoteserver.com ด้วยชื่อโฮสต์หรือที่อยู่ IP ของเซิร์ฟเวอร์ระยะไกล ตอนนี้ SSH ลงในเซิร์ฟเวอร์นั้นและเพิ่มคีย์สาธารณะของเดสก์ท็อปของคุณไปยังการกำหนดค่า SSH ของเซิร์ฟเวอร์:

# ssh username@remoteserver.com
# แมว ~/id_rsa.pub>> ~/.ssh/authorized_keys2

ถัดไป คุณต้องตั้งค่าการอนุญาตของไฟล์ ~/.ssh/authorized_keys2 ถูกต้อง:

# chmod 644 ~/.ssh/authorized_keys2

ไม่จำเป็นเสมอไป แต่ฉันเคยติดอยู่กับปัญหาที่เกิดจากปัญหาการอนุญาตหลายครั้ง นอกจากจะไม่ทำให้เสียหายที่จะตั้งค่าการอนุญาตให้ถูกต้อง ตอนนี้คุณทำเสร็จแล้ว ออกจากการเชื่อมต่อ SSH ไปยังเซิร์ฟเวอร์ระยะไกลแล้ว ssh เข้าไปอีกครั้ง ตอนนี้คุณไม่ควรถูกถามรหัสผ่าน

ตอนนี้คุณสามารถทำสิ่งดีๆ มากมายบนเซิร์ฟเวอร์ระยะไกลของคุณ ตัวอย่างเช่น เรียกใช้คำสั่ง:

# ssh username@remoteserver.com “เวลาทำงาน; df -h”

คำสั่งควรให้ผลลัพธ์ที่ต้องการจากเซิร์ฟเวอร์ระยะไกลของคุณโดยตรงบนโลคัลเชลล์ของคุณ โดยไม่ต้องถามรหัสผ่านของคุณ คุณยังสามารถคัดลอกไฟล์ไปยังหรือจากเซิร์ฟเวอร์ระยะไกลของคุณโดยไม่ต้องกังวลเกี่ยวกับการป้อนรหัสผ่าน ซึ่งหมายความว่าคุณสามารถทำสิ่งต่างๆ เช่น ดาวน์โหลดข้อมูลสำรองรายวันจากเซิร์ฟเวอร์ระยะไกลไปยังเดสก์ท็อปในเครื่องทุกวันโดยใช้เชลล์สคริปต์อย่างง่าย นี่เป็นเครื่องมือที่ทรงพลังทีเดียว ใช้อย่างระมัดระวัง