ฉันมีบัญชีสองเครื่อง: H1 และ H2 ฉันสร้างคีย์ ssh บน H1 และติดตั้งบน S1 ตอนนี้ฉันสามารถ ssh ถึง S1 จาก H1 ฉันต้องการทำสิ่งเดียวกันจาก H2 ฉันจะติดตั้งคีย์ ssh ที่สร้างขึ้นบน H1 บน H2 ได้อย่างไร
ฉันมีบัญชีสองเครื่อง: H1 และ H2 ฉันสร้างคีย์ ssh บน H1 และติดตั้งบน S1 ตอนนี้ฉันสามารถ ssh ถึง S1 จาก H1 ฉันต้องการทำสิ่งเดียวกันจาก H2 ฉันจะติดตั้งคีย์ ssh ที่สร้างขึ้นบน H1 บน H2 ได้อย่างไร
คำตอบ:
แก้ไข: หากคุณเป็นเจ้าของทั้งสองเครื่องคุณสามารถแบ่งปันรหัสส่วนตัวของคุณ แต่วิธีนี้ไม่ปลอดภัยสำหรับกรณีของโน้ตบุ๊กที่ถูกขโมยหรือสำหรับเครื่องที่คุณไม่ได้เป็นเจ้าของ
คุณสามารถคัดลอกคีย์ส่วนตัวของคุณจาก H1 ถึง H2 หากคุณต้องการใช้ไพรเวตคีย์เดียวกันเพื่อให้สามารถเข้าสู่ระบบจาก H2 ถึง S1 เมื่อคุณอยู่ที่ H1 ทำคำสั่ง:
H1$ ssh H2 mkdir ~/.ssh
H1$ scp ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/
คำเตือน! นี่จะเป็นการลบและแทนที่ไพรเวตคีย์ที่คุณมีที่ H2
วิธีที่ดีกว่าคือการสร้างไพรเวตคีย์ใหม่บน H2 ( ssh-keygen
) และติดตั้งส่วนสาธารณะใน S1 ด้วยssh-copy-id
util ในกรณีที่ปลอดภัยกว่านี้คุณจะมีกุญแจสองชุด หนึ่งคือสำหรับการเข้าสู่ระบบ H1-S1 และที่สองสำหรับการเข้าสู่ระบบ H2-S1 จะมีกุญแจสาธารณะสองอันที่ได้รับอนุญาตที่ S1 และคุณจะสามารถเพิกถอนสิ่งใดสิ่งหนึ่งหรือทั้งสองอย่าง (ตัวอย่างเช่นเมื่อสมุดบันทึกของคุณถูกขโมยหรือเจ้าของเครื่องตัดสินใจที่จะปิดการใช้งานบัญชีของคุณและนำไฟล์ทั้งหมดของคุณกลับมาใช้ใหม่)
ใช้ ssh-copy-id
สรุป
ssh-copy-id [-i [identity_file]] [user @]
รายละเอียด
ssh-copy-id เป็นสคริปต์ที่ใช้ ssh เพื่อเข้าสู่เครื่องระยะไกลและผนวกไฟล์ข้อมูลประจำตัวที่ระบุไปยังไฟล์ ~ / .ssh / authorized_keys ของเครื่องนั้น
ตั้งค่า H2 โดยใช้กระบวนการเดียวกัน (แต่ไม่ใช่คีย์ส่วนตัวเดียวกัน) เหมือนกับที่คุณทำเมื่อตั้งค่า H1:
พิมพ์: ssh-keygen -t rsa
พิมพ์: ssh-copy-id username@S1.net
(แต่ใช้ชื่อผู้ใช้จริงของคุณในชื่อโฮสต์ของ S1 และ S1 จากนั้นพิมพ์รหัสผ่านของคุณใน S1 เมื่อมีการขอ)
สิ่งนี้จะติดตั้งพับลิกคีย์ของเวิร์กสเตชันของคุณลงใน~/.ssh/authorized_keys
ไฟล์สำหรับผู้ใช้บนเซิร์ฟเวอร์
ฉันคิดว่าสิ่งที่คุณถามจริงๆคือ
วิธีที่ถูกต้องในการทำเช่นนั้นคืออะไร?
ผู้คนต่างก็ใช้ความคิดว่าบัญชีหนึ่งบัญชีบนเซิร์ฟเวอร์มีชื่อผู้ใช้เดียวและแน่นอนว่ารหัสผ่านที่ได้รับอนุญาตเดียว
ระบบกุญแจสาธารณะเช่น ssh นั้นดีกว่าระบบรหัสผ่าน: บัญชีหนึ่งบัญชีบนเซิร์ฟเวอร์มีชื่อผู้ใช้เดียวและกุญแจสาธารณะที่ได้รับอนุญาตจำนวนมากซึ่งทั้งหมดนี้มีอยู่ใน~/.ssh/authorized_keys
ไฟล์
ssh-copy-id จะทำงานให้คุณ: http://linux.die.net/man/1/ssh-copy-idหรือไม่
สำหรับการเปลี่ยนคีย์ SSH จากคอมพิวเตอร์เครื่องหนึ่งไปอีกเครื่องหนึ่ง เพียงคัดลอกโฟลเดอร์ทั้งหมดจาก ~ / .ssh จาก H1 (เครื่องเก่า) ไปยังโฟลเดอร์เนื้อหา ~ / .ssh ของเครื่องใหม่ H2
ตอนนี้ลอง:
ssh ubuntu@13.123.43.26 (IP S1 ของคุณ)
ส่วนใหญ่คุณจะได้รับคำเตือนเรื่องสิทธิ์ในการแก้ไขปัญหา
chmod 400 ~ / .ssh / id_rsa
ตอนนี้อีกครั้ง:
ssh ubuntu@13.123.43.26 (IP S1 ของคุณ)
มันจะทำงานได้ดีในขณะนี้
ssh-copy-id
เป็นข้อพิสูจน์ที่โง่กว่า (ไม่มีการเขียนทับคีย์ที่มีอยู่หรือคัดลอกคีย์ส่วนตัวโดยไม่ได้ตั้งใจแทนที่จะเป็นกุญแจสาธารณะ ) และวิธีการแก้ปัญหาที่รู้จักน้อยกว่าโปรดพิจารณาตอบหนึ่งในคำตอบที่ได้รับการยอมรับ