คุณควรใช้คีย์ SSH เพื่อรับรองความถูกต้องแทนที่จะใส่รหัสผ่านในบรรทัดคำสั่งเนื่องจากไม่ปลอดภัยอย่างยิ่ง
วิธีการทำงานนี้คือเมื่อคุณตั้งค่าคีย์ SSH ของคุณแล้วสิ่งที่คุณต้องทำคือออกคำสั่ง:
ssh user@host
และโดยไม่ต้องพิมพ์สิ่งอื่นคุณจะเข้าสู่ระบบโดยอัตโนมัติ
คัดลอกกุญแจสาธารณะ SSH ไปยัง Mac / FreeBSD / Linux จาก macOS
สิ่งนี้ถือว่าคุณสามารถเข้าถึงเซิร์ฟเวอร์ระยะไกลผ่านการตรวจสอบความถูกต้องด้วยรหัสผ่าน (พิมพ์รหัสผ่าน) และคุณได้สร้างรหัสส่วนตัว / สาธารณะของคุณแล้ว (ถ้าไม่ใช่ดูด้านล่าง) ในตัวอย่างต่อไปนี้เรากำลังใช้ RSA ในการเริ่มต้นให้ลองคัดลอกคีย์ (โปรดทราบว่าไดเรกทอรี "home" แตกต่างกันระหว่าง macOS, Linux, BSD และอื่น ๆ ):
ใช้ SCP:
scp ~/.ssh/id_rsa.pub username@hostname:/Users/username/.ssh/
หรือเพียงแค่ cat ไฟล์เพื่อauthorized_keys
(ฉันชอบวิธีนี้):
cat id_rsa.pub | ssh username@hostname ' cat >>.ssh/authorized_keys'
(ชื่อคีย์ของคุณอาจแตกต่างกัน) หากไดเรกทอรี. ssh ไม่มีอยู่บนเซิร์ฟเวอร์ระยะไกลคุณจะต้องลงชื่อเข้าใช้และสร้างขึ้น
ตอนนี้คีย์ถูกคัดลอกจาก mac ไปยังเซิร์ฟเวอร์ระยะไกล ตั้งค่าการอนุญาตที่ถูกต้องสำหรับ SSH Public Key บนเซิร์ฟเวอร์ระยะไกล:
chmod 600 ~/.ssh/id_rsa.pub
ถัดไปเพิ่มคีย์ไปยังไฟล์ SSH authorized_keys หากไฟล์ไม่มีอยู่ให้สร้างขึ้น
หากไฟล์authorized_keys
มีอยู่แล้วใน~/.ssh
การใช้คำสั่งต่อไปนี้:
cat id_rsa.pub >> authorized_keys
หากไฟล์ไม่มีอยู่ให้ป้อนคำสั่งต่อไปนี้:
cat id_rsa.pub > authorized_keys
chmod 600 authorized_keys
chown user:group authorized_keys
สร้างคีย์สาธารณะ / ส่วนตัว SSH บน macOS
เปิด Terminal โดยไปที่ Applications -> Utilities -> Terminal
ในเทอร์มินัลใช้คำสั่งต่อไปนี้เพื่อเริ่มต้นการสร้างคีย์
ssh-keygen -t rsa
ถัดไปคุณจะได้รับแจ้งให้ระบุตำแหน่งที่คุณต้องการสร้างไฟล์กุญแจส่วนตัว:
ป้อนไฟล์ที่จะบันทึกคีย์ ( /Users/username/.ssh/id_rsa
):
/Users/username/.ssh/id_rsa
ปล่อยว่างนี้เพื่อสร้างที่สำคัญในการตั้งค่าเริ่มต้นซึ่งเป็น ไฟล์กุญแจสาธารณะจะถูกสร้างขึ้นในตำแหน่งเดียวกันและมีชื่อเดียวกัน แต่ใช้นามสกุล. PUUB
หลังจากนั้นคุณจะได้รับแจ้งให้เลือกข้อความรหัสผ่าน นี่คือรหัสผ่านที่เป็นทางเลือกเพื่อใช้ไพรเวตคีย์
Enter passphrase (empty for no passphrase):
สร้างคีย์ SSH ของคุณแล้ว
อย่าลืมว่าถ้าคุณใส่วลีรหัสผ่านคุณจะต้องใส่มันทุกครั้งที่คุณเชื่อมต่อ ยูทิลิตี้ssh-agent
นี้จะเก็บข้อความรหัสผ่านในหน่วยความจำเพื่อลดความจำเป็นในการป้อนข้อมูลด้วยตนเองทุกครั้งที่คุณเชื่อมต่อในขณะที่คุณอยู่ในเซสชันเดียวกัน สำหรับรายละเอียดเพิ่มเติมดูman ssh-agent