ไพรเวตคีย์หลายอันสามารถใช้กับ ssh ได้อย่างไร?


58

ฉันสามารถตั้งค่า ssh เพื่อใช้การพิสูจน์ตัวตนของคีย์ส่วนตัว / สาธารณะ ตอนนี้ฉันสามารถทำ

ssh user@server1

และเข้าสู่ระบบด้วยรหัสส่วนตัว ตอนนี้ฉันต้องการเชื่อมต่อกับเซิร์ฟเวอร์อื่นและใช้รหัสอื่น ตั้งค่าอย่างไร

ssh user@server1

ใช้ privatekey1

ssh user@server2

และใช้ privatekey2


7
ไม่มีเหตุผลที่แท้จริง - เป็นกล่องตำนานส่วนตัวและอีกอันคือเซิร์ฟเวอร์ทำงานและฉันไม่ต้องการใช้กุญแจบ้านในที่ทำงาน
Joshua

ไม่มีคำตอบที่ดูเหมือนจะตอบ quesiton เต็มรูปแบบเช่นวิธีการสร้างคีย์ที่แตกต่าง privatekey1 และ privatekey2
jpwynn

คำตอบ:


49

มีตัวเลือกน้อย

  1. โหลดกุญแจทั้งสองไว้ในตัวแทน SSH ssh-addของคุณโดยใช้ จากนั้นทั้งสองคีย์จะพร้อมใช้งานเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ทั้งสอง

  2. สร้าง$HOME/.ssh/configไฟล์ของคุณและสร้างHostส่วนสำหรับ server1 และอีกส่วนสำหรับ server2 ในแต่ละHostส่วนเพิ่มIdentityFileตัวเลือกที่ชี้ไปยังไฟล์กุญแจส่วนตัวที่เหมาะสม


2
เอเจนต์ ssh เป็นความคิดที่ดีถ้าฉันมีทั้งไฟล์กุญแจสาธารณะและกุญแจส่วนตัวเช่น key1 และ key1.pub ใน ~ / .ssh มันจะโหลดโดยอัตโนมัติ
Joshua

57

คุณสามารถตั้งค่านี้ใน~/.ssh/configไฟล์ของคุณ คุณจะมีสิ่งนี้:

Host server1
IdentityFile ~/.ssh/key_file1

Host server2
IdentityFile ~/.ssh/key_file2

man ssh_config เป็นการอ้างอิง


4
คุณยังสามารถระบุUserสำหรับแต่ละโฮสต์เพื่อลดการกดปุ่ม สุดท้ายเมื่อคุณสร้างคีย์ SSH ใหม่สำหรับแต่ละโฮสต์ด้วยssh-keygenให้แน่ใจว่าคุณป้อนเส้นทางคีย์อื่น
Marco Ceppi

มีตัวเลือกในการระบุคีย์เริ่มต้นเช่นพูดhost x ->key1แล้วโฮสต์ที่เหลือkey2
azerafati

ใช่ใช้sh Host * และเพิ่มค่าเริ่มต้นแทนที่การเพิ่ม Van แทนที่อยู่ด้านล่าง นอกจากนี้: sh man_ssh_config โดยเฉพาะส่วนในส่วน "โฮสต์" ที่เกี่ยวข้องกับเครื่องหมายดอกจัน '*' & เครื่องหมายอัศเจรีย์ '!'
immeëmosol
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.