ฉันสามารถมีคีย์ ssh หลายอันในโฟลเดอร์. ssh ของฉันได้หรือไม่


30

ฉันสามารถสร้างคีย์ ssh หลาย ๆ อันและเปลี่ยนชื่อพวกมันให้เป็นชื่อที่เข้าใจง่ายของผู้ใช้ดังนั้นฉันจึงรู้ว่าคีย์ตัวไหนเป็นของเว็บไซต์อื่น

ปลอดภัยไหม

เช่น:

github_id_rsa
github_id_rsa.pub
..
...

จะทราบได้อย่างไรว่าจะตรวจสอบคีย์ใดเมื่อเชื่อมต่อ

ในคอมพิวเตอร์ของฉันตอนนี้เมื่อฉันดูที่ known_hosts พวกเขาทั้งหมดดูเหมือนจะมีคีย์เดียวกันหลังจากชื่อโฮสต์หรือไม่



นอกจากนี้คีย์โฮสต์ที่รู้จักจะไม่เหมือนกันอย่างแน่นอนเพียงแค่ดูที่ปลายของแต่ละบรรทัดสำหรับโฮสต์
slhck

คำตอบ:


15

ใช่คุณสามารถมีปุ่ม ssh ที่แตกต่างกัน มีเอกสารที่ดีมากในเว็บไซต์ GitHub ช่วยเหลือที่เป็นคีย์ SSH หลาย - Help.GitHub เป็นหลักคุณจะใช้ ssh-add เพื่อเพิ่มคีย์พิเศษเพื่อให้ตัวแทนสามารถใช้พวกเขา จากนั้นคุณตั้งค่าโฮสต์ ssh เพื่อให้การเชื่อมต่อ ssh ไปยังโดเมนที่แตกต่างกันจะถูกค้นหาที่นี่และคีย์ที่เหมาะสมจะถูกใช้ โชคดี!


1
ลิงก์ใช้งานไม่ได้อีกต่อไป
danwellman


44

คุณสามารถแก้ไขไฟล์ ~ / .ssh / config เพื่อใช้ไฟล์ตัวตนที่แตกต่างกันสำหรับเซิร์ฟเวอร์ที่แตกต่างกัน แก้ไข ~ / .ssh / config ในโปรแกรมแก้ไขรายการโปรดของคุณและเพิ่มรายการที่เหมาะสมกับสถานการณ์ของคุณเช่น:

Host *
IdentityFile ~/.ssh/id_rsa

Host *.github.*
IdentityFile ~/.ssh/github_id.rsa

Host *.someother.com
IdentityFile ~/.ssh/someother_id.rsa

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


3
นี่คือคำตอบที่มีประโยชน์ที่สุดสำหรับคำถามนี้โดยไม่คำนึงถึงปลายทางไม่ว่าจะเป็น GitHub หรือเว็บไซต์อื่น ๆ
ปิแอร์

วิธีนี้ใช้ไม่ได้หากคุณมีหลายบัญชี bitbucket และจำเป็นต้องมีรหัสที่แตกต่างกันไปในแต่ละครั้ง
John Little

chmod 400 ~/.ssh/id_rsaหรือchmod 400 ~/.ssh/foo_id.rsaอาจจำเป็น
T.Woody

@JohnLittle ดูคำตอบของฉันที่แก้บัญชีผู้ใช้หลายคนสำหรับโดเมนเดียวกัน
Sathishkumar Rakkiasamy

4

คุณสามารถตั้งค่าคีย์ ssh หลาย ๆ อันสำหรับเว็บไซต์ที่มีบัญชีผู้ใช้หลายบัญชี

ด้านล่างเป็นตัวอย่างที่ฉันใช้ในการพัฒนาGitHub.com

ตัวอย่างไฟล์กำหนดค่า

#Personal account
 Host github.com-<personal-account-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_personal
 IdentitiesOnly yes



#Organization account
 Host github.com-<organization-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_work
 IdentitiesOnly yes

ในช่วงเวลาของการเพิ่มแหล่งกำเนิดใหม่

สำหรับบัญชีส่วนบุคคล

git remote add origin git@github.com-<personal-account-name>:<personal-account-name>/<repo-name>.git

สำหรับบัญชีองค์กร

git remote add origin git@github.com-<organization-name>:<organization-name>/<repo-name>.git

หวังว่ามันจะช่วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.