เป็นไปได้หรือไม่ที่จะระบุคีย์ที่ส่งต่อโดยใช้ IdentityFile directive ใน. ssh / config
ฉันพบปัญหานี้เมื่อพยายามปรับใช้รหัสบางอย่างผ่าน Capistrano / GIT บนเซิร์ฟเวอร์ที่ใช้งานจริงของเรา ทั้งกุญแจส่วนตัวและกุญแจงาน GIT ของฉันจะถูกโหลดในตัวแทน SSH ของฉันเสมอและมันก็เกิดขึ้นจนกุญแจส่วนตัวของฉันถูกเพิ่มเข้าไปในตัวแทนก่อน ฉันใช้ตัวแทนการส่งต่อเมื่อปรับใช้กับ Capistrano ดังนั้นเมื่อโฮสต์พยายามรับรองความถูกต้องของการดำเนินการ 'git pull' มันล้มเหลวด้วยข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาด: การอนุญาตให้ 'บางคนซื้อคืน' ปฏิเสธที่จะเป็น 'ผู้ใช้ของคุณ'
เพราะมันพยายามที่จะรับรองความถูกต้องโดยใช้คีย์ git ส่วนตัวของฉันก่อนที่จะลองใช้คีย์ที่เหมาะสม (ซึ่งมาในเอเจนต์ ssh) และสันนิษฐานว่าฉันกำลังเข้าถึง repo ต่างประเทศซึ่งฉันไม่ได้รับอนุญาตให้เข้าถึง ฉันสามารถให้สิทธิ์ผู้ใช้ส่วนตัวของฉันในการเข้าถึง repo งานทุกชิ้น แต่ในเครื่องของฉันฉันสามารถแก้ไขปัญหานี้ได้ด้วยการกำหนดโดเมนที่กำหนดเองใน. ssh / config ดังนี้:
โฮสต์ personal.github.com
ชื่อโฮสต์ github.com
ผู้ใช้ git
IdentityFile ~ / .ssh / some_key
โฮสต์ work.github.com
ชื่อโฮสต์ github.com
ผู้ใช้ git
IdentityFile ~ / .ssh / some_other_key
และวิธีนี้คอมไพล์ไม่เคยสับสน เป็นไปได้หรือไม่ที่จะสร้างกฎ. ssh / config สำหรับคีย์ที่ส่งต่อในกล่องการผลิตของฉันเพื่อให้พวกเขารู้เสมอว่าจะใช้คีย์ใดเมื่อดึงรหัสใหม่? โดยทั่วไปฉันต้องการจะทำ:
โฮสต์ work.github.com
ชื่อโฮสต์ github.com
ผู้ใช้ git
IdentityFile some_forwarded_key
ขอบคุณ!