How to Clone Git with SSH (Part 2)

SSH

มาต่อจาก Part 1 กันที่ผมทิ้งท้ายไว้ว่าถ้าเราจะใช้ SSH config โดยที่เรามีหลาย key หลาย account เราต้องทำยังไงรวมถึงวิธีการ clone ด้วย Git SSH

การ Clone git ด้วย SSH

ถ้าเราจะ clone git ด้วย SSH เราก็สามาถ ใช้ command ด้านล่างนี้

git clone git@host:username/repository.git
Example
    [email protected]:jumpbox-academy/cloud-camp-audition.git
  • host หมายถึงชื่อ VCS(Version Control System) provider เช่น github.com (ถ้าเราไม่ทำการตั้งค่าอะไรใน ~.ssh/config อันนี้จะเป็น ชื่อ default)
  • username แสดงถึงบัญชีผู้ใช้ของคุณ เช่น jumpbox-academy
  • repository แสดงถึงชื่อของที่เก็บ Git ที่คุณต้องการโคลน เช่น cloud-camp-audition

แต่อย่างที่ผมกล่าวไปข้างต้น ถ้าเราอยากใช้ SSH key หลายๆ key คนละ account หรือว่าคนละ provider ต้องทำยังไงหล่ะ

SSH Config คืออะไรร

สมมติ อยากใช้ SSH หลายๆ Key เช่น Github / Gitlab / Bicbucket และ Hosting แยกกันไปเลย ก็ทำได้ โดยใช้กำหนดที่ ~/.ssh/config (ถ้าไม่มีไฟล์นี้ ก็สร้างขึ้นมาเลยครับ)

เช่น ผมมี 2 account ใช้ github ผมก็จะแยกแบบนี้โดย

– Host เราสมารถตั้งชื่ออะไรก็ได้ตามที่เราต้องการ host ตรงนี้จะไป mapping กับการ clone ด้านบนเช่นกันว่าเราจะใช้ host ไหนในการ clone repo นี้
– Hostname คือชื่อของ vcs provider
– User ชื่อผู้ใช้ของ account นั้นๆที่เราทำการผูก SSH key
– IdentityFile คือไฟล์ private key ที่เรานำ pub key ไปไว้บน provider

Host github.com 
    Hostname github.com
    User creampxxz 
    IdentityFile ~/.ssh/id_ed25519 

Host github.com-work
    Hostname github.com
    User phylynlyn 
    IdentityFile ~/.ssh/id_ed25519_2

อันนี้ข้อดีคือ ช่วยให้เราสามารถ SSH เพื่อ ใช้ github คนละ account ได้ เช่นสมมติ url เราเป็นแบบนี้

[email protected]/jumpbox/myrepo

แต่ถ้าเราอยากให้ SSH มันไปเรียก ~/.ssh/id_ed25519_2 เราก็แค่เปลี่ยน git remote url

git remote set-url origin [email protected]/jumpbox/myrepo
git clone [email protected]/jumpbox/myrepo <-- ใช้ Key แรก
git clone [email protected]/jumpbox/myrepo <-- ใช้ Key อันที่ 2

เพียงเท่านี้เราก็จะสามารถ ใช้ SSH key ได้โดย รู้ทั้งวีธีการ clone แบบไม่ Set config และ Set config ในกรณีที่เรามีหลาย account และหลาย provider

Leave a Reply

Your email address will not be published. Required fields are marked *