ทั้งหมดนี้รวบรวมจากเว็บไซต์และสแต็คโอเวอร์โฟลว์หวังว่านี่จะช่วยผู้ที่ยังใหม่กับ ssh
เพื่อให้คุณสามารถมีคีย์ ssh มากมาย
~/.ssh$ ls
yyy_id_rsa yyy_id_rsa.pub id_rsa id_rsa.pub known_hosts
หมายเหตุ: เราต้องเพิ่มจากนั้นไปยัง ssh-agent อาจจะมีการเพิ่ม id_rsa ดังนั้นเราจึงจำเป็นต้องเพิ่มคีย์ส่วนตัวอื่น ๆ
~/.ssh$ ssh-add yyy_id_rsa
ตอนนี้เราได้เพิ่มปุ่ม ssh ทั้งสองลงใน ssh-agent
เรามีหนึ่งอันสำหรับ bitbucket และอีกอันสำหรับ github
ดังนั้นเราจึงสร้างไฟล์ปรับแต่งแบบนี้
~/.ssh$ nano config
Host bit-yyyuser bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/yyy_id_rsa
User yyyuser
Host bit-xxxuser bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/id_rsa
User xxxuser
Host git-xxxuser github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa
User xxxuser
หมายเหตุ: ฉันกำลังใช้ 2 ปุ่มที่แตกต่างกันสำหรับ 2 บัญชีที่แตกต่างกันใน bitbucket และอีกหนึ่งปุ่มสำหรับ Github
ตอนนี้เราต้องบอกพื้นที่เก็บข้อมูล git ที่จะใช้เพื่อให้ฉันจะได้รับคีย์ ssh เฉพาะสำหรับบัญชีนั้น
เปลี่ยนgit@bitbucket.orgyyyuser/yyyproject.git
เป็นgit@bit-yyyuser:yyyuser/yyyproject.git
ดังนั้นในโฟลเดอร์โครงการและเพิ่ม URL ระยะไกล
/var/www/yyyproject$ git remote add bit git@bit-yyyuser:yyyuser/yyyproject.git
ในโครงการอื่น ๆ
/var/www/xxxproject$ git remote add bitt git@bit-xxxuser:xxxuser/xxxproject.git
ตอนนี้คุณสามารถใช้การผลักและดึงได้อย่างง่ายดาย
:/var/www/yyyproject$ git pull bit master
From bit-yyyuser:yyyuser/yyyproject
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/yyyproject$
และโครงการอื่น
/var/www/xxxproject$ git push bitt ver1
To git@bit-xxxuser:xxxuser/xxxproject.git
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/xxxproject$
ตอนนี้ฉันไม่มีโครงการ github บนเครื่องท้องถิ่นดังนั้นเราจึงจำเป็นต้องโคลนโครงการ แต่เราต้องการเปลี่ยนแปลง URL เล็กน้อยเป็นโคลน
URL ของเราเป็นเช่นนี้
git@github.com:xxxuser/python.git
เนื่องจากเราต้องทำการโคลนด้วยคีย์เฉพาะเราเพียงแค่ต้องเปลี่ยนชื่อโฮสต์ด้วยโฮสต์ที่เรากำหนดไว้
git@git-xxxuser:xxxuser/python.git
ตามที่กำหนดไว้ในไฟล์ปรับแต่ง
และตอนนี้เราสามารถโคลน
:/var/www/us$ git clone git@git-xxxuser:xxxuser/python.git
Cloning into 'python'...
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 75 (delta 18), reused 62 (delta 8)
Receiving objects: 100% (75/75), 6.29 KiB, done.
Resolving deltas: 100% (18/18), done.
:/var/www/us$
เราได้ระบุคีย์ ssh ที่แตกต่างกันสำหรับโฮสต์ที่ต่างกันหนึ่งอันสำหรับ git และอีกอันสำหรับ bitbucket ตอนนี้ระบบทราบว่าคีย์ ssh ใดที่จะใช้กับโฮสต์ใด
ตอนนี้เราสามารถดึงกดได้ง่าย