นอกจากนี้ไม่มีโดยตรงวิธีที่จะบอกgitซึ่งคีย์ส่วนตัวในการใช้งานเพราะอาศัยsshสำหรับการตรวจสอบพื้นที่เก็บข้อมูล อย่างไรก็ตามยังมีอีกสองสามวิธีในการบรรลุเป้าหมายของคุณ:
ตัวเลือกที่ 1: ssh-agent
คุณสามารถใช้ssh-agentเพื่ออนุญาตคีย์ส่วนตัวของคุณชั่วคราว
ตัวอย่างเช่น:
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa; git fetch user@host'
ตัวเลือก 2: GIT_SSH_COMMAND
ผ่านอาร์กิวเมนต์ ssh โดยใช้GIT_SSH_COMMANDตัวแปรสภาพแวดล้อม (Git 2.3.0+)
ตัวอย่างเช่น:
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' \
git clone user@host
คุณสามารถพิมพ์นี้ทั้งหมดในหนึ่งเส้น - ไม่สนใจและปล่อยออกมา$\
ตัวเลือก 3: GIT_SSH
ผ่านอาร์กิวเมนต์ ssh โดยใช้GIT_SSHตัวแปรสภาพแวดล้อมเพื่อระบุsshไบนารีสำรอง
ตัวอย่างเช่น:
$ echo 'ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh
$ chmod +x ssh
$ GIT_TRACE=1 GIT_SSH='./ssh' git clone user@host
หมายเหตุ: บรรทัดด้านบนคือบรรทัดคำสั่งเชลล์ (เทอร์มินัล) ซึ่งคุณควรวางลงในเทอร์มินัลของคุณ พวกเขาจะสร้างไฟล์ที่ชื่อว่าsshทำให้มันสามารถเรียกใช้งานได้และ (โดยอ้อม) เรียกใช้งานมัน
หมายเหตุ: GIT_SSHมีให้บริการตั้งแต่ v0.99.4 (2005)
ตัวเลือก 4: ~/.ssh/config
ใช้~/.ssh/configไฟล์ตามคำแนะนำในคำตอบอื่น ๆ เพื่อระบุตำแหน่งของคีย์ส่วนตัวของคุณเช่น
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa