คุณสามารถคัดลอกกุญแจสาธารณะของคุณไปยังเครื่องระยะไกล ตราบใดที่พวกเขาเปิดใช้งานการรับรองความถูกต้องของกุญแจสาธารณะและกุญแจสาธารณะของคุณอยู่ในเครื่องระยะไกลคุณสามารถssh
ไปยังเครื่องโดยไม่ต้องใส่รหัส
ก่อนอื่นคุณต้องสร้างรหัสสาธารณะ / ส่วนตัวเช่น:
ssh-keygen -t rsa
ทำตามคำแนะนำ เมื่อถามว่าคุณต้องการปกป้องกุญแจด้วยข้อความรหัสผ่านว่าใช่! เป็นการปฏิบัติที่ไม่ดีที่จะไม่ใช้รหัสผ่านเพื่อป้องกันกุญแจของคุณและฉันจะแสดงวิธีการป้อนรหัสผ่านเพียงครั้งเดียว
หากคุณมีคู่คีย์คุณสามารถข้ามขั้นตอนข้างต้นได้
ตอนนี้สมมติว่ามีคีย์ ssh ของคุณอยู่บน Mac ของ~/.ssh/id_rsa.pub
คุณคุณสามารถติดตั้งบนเครื่องระยะไกลได้
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
สำหรับตัวอย่างเซิร์ฟเวอร์ที่คุณอ้างถึงข้างต้นคำสั่งจะมีลักษณะดังนี้:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
คุณจะต้องป้อนรหัสผ่านสำหรับroot@123.456.789.012
การทำสำเนานี้ แต่ควรจะเป็นครั้งสุดท้ายที่คุณต้องทำ สมมติว่าเซิร์ฟเวอร์ระยะไกลที่sshd
มีการตั้งค่าที่จะทำภาครัฐและเอกชนตรวจสอบคีย์เมื่อคุณ ssh กล่องตอนนี้ก็ไม่ควรขอรหัสผ่านสำหรับการroot
บัญชี - แทนมันจะขอรหัสผ่านสำหรับคุณที่สำคัญ อ่านต่อเกี่ยวกับวิธีการทำสิ่งนี้ที่คุณไม่จำเป็นต้องป้อนตลอดเวลา
ทำซ้ำด้านบนสำหรับทุกเครื่องที่คุณต้องการใช้กุญแจของคุณแทนรหัสผ่าน
โปรดทราบว่าทุกคนที่ได้รับ~/.ssh/id_rsa
ไฟล์ของคุณสามารถเข้าใช้งานเครื่องนี้ได้root
โดยไม่ต้องป้อนรหัสผ่านสำหรับเครื่องระยะไกล การป้องกันรหัสผ่านของไฟล์คีย์ทำให้แน่ใจว่าพวกเขาต้องการทราบรหัสผ่านสำหรับคีย์นั้นเพื่อใช้งาน ตรวจสอบให้แน่ใจว่าไฟล์นั้นปลอดภัย ใช้การเข้ารหัสดิสก์บน Mac ของคุณและให้สิทธิ์ในไฟล์และ~/.ssh/
ไดเรกทอรีแน่น
เพื่อให้ใช้คีย์ได้ง่ายขึ้นโดยไม่ต้องป้อนรหัสผ่านทุกครั้ง OS X จะssh-agent
ดำเนินการตามพื้นหลังบนเครื่องของคุณ เอเจนต์นี้จะทำการคีย์แพร์ในครั้งแรกที่คุณใช้เพื่อให้คุณต้องป้อนรหัสผ่านของคุณเป็นครั้งคราว หากคุณนอนเฉยๆ mac ไม่ต้องรีสตาร์ทคุณสามารถใช้เวลานานโดยไม่ต้องป้อนรหัสผ่าน
คุณสามารถแคชคีย์ SSH ล่วงหน้าได้ด้วยการssh-agent
เรียกใช้:
ssh-add
ตอนนี้คุณต้องจำรหัสผ่านที่สำคัญไม่ใช่รหัสผ่านบัญชีที่แตกต่างกันมากมาย ฉันมักจะเก็บรหัสผ่านที่สำคัญของฉันไว้ใน1Password (ไม่มีส่วนเกี่ยวข้อง) ทำให้ฉันจำรหัสผ่านที่ต้องจำได้ง่ายขึ้น จากนั้นฉันก็ค้นหาพวกเขาใน 1Password และตัดและวางในเทอร์มินัลในเวลาแปลก ๆ ที่ฉันรีสตาร์ท Mac ของฉันและทำให้การทำงานของฉันssh-agent
จะเริ่มต้นใหม่
หากคุณรวมการคัดลอกคีย์ไปยังเครื่องระยะไกลด้วยโซลูชันการจัดการการเชื่อมต่อ Terminal.app ในคำถามนี้คุณจะมีบางสิ่งที่ใกล้เคียงกับ PuTTY สำหรับประสบการณ์การเชื่อมต่อ GUI
ที่ด้านเซิร์ฟเวอร์ให้ตรวจสอบ/etc/ssh/sshd_config
และตรวจสอบให้แน่ใจว่า:
PubkeyAuthentication yes
เปิดใช้งานในการกำหนดค่า (โดยค่าเริ่มต้นใน OpenSSH) คุณอาจต้องการตั้งค่า:
PasswordAuthentication no
ในขณะที่คุณอยู่ที่นั่นดังนั้นการรับรองความถูกต้องด้วยรหัสผ่านจึงถูกปิดใช้งานและคีย์จะเป็นวิธีเดียวในการเข้าถึงเครื่อง
คุณจะต้องรีสตาร์ท sshd บนเครื่องหากคุณทำการเปลี่ยนแปลงใด ๆ กับไฟล์การกำหนดค่า