Clone/Pull จาก Github โดยใช้ Deploy Key

1. บนเซิฟเวอร์ สร้างหรือลอคอินเป็น user ที่ต้องการใช้งาน

Generate ssh key

สร้าง SSH key บนเซิฟเวอร์ โดยใช้คำสั่ง

$ ssh-keygen -t ed25519 -C "your_email"

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/USER/.ssh/id_ed25519): /home/USER/.ssh/id_github
Created directory '/home/USER/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/USER/.ssh/id_github
Your public key has been saved in /home/USER/.ssh/id_github.pub
The key fingerprint is:
SHA256:ozITiHPpfsdfadsffamh28ad+d9ZZpfasdfsQeI4YaF8+Ge0 [email protected]
The key's randomart image is:
+--[ED25519 256]--+
|          .   +. |
|.    O . o .  + .|
|    .     . ..   |
+----[SHA256]-----+

เปิดดู public key เพื่อนำไปใช้ใส่ใน Github Deploy Key

cat /home/USER/.ssh/id_github.pub

2. ใน Github ไปยัง repository ที่ต้องการ

  1. ไปที่ Setting > Deploy Keys
  2. คลิก Add Deploy Key
  3. นำ Public key ที่ได้จากข้อด้านบน ไปกรอกในช่อง Key
  4. หากต้องการใช้เพื่อ Pull อย่างเดียว ไม่ต้องติ๊ก allow write access

3. ตั้งค่า SSH login เพื่อใช้งานหลาย key บนเซิฟเวอร์

$ vi ~/.ssh/config 

#เพิ่มข้อความ
Host github.com-repo-name
        Hostname github.com
        IdentityFile ~/.ssh/github_rsa

ทำการ Cloud repository ที่ต้องการ โดยไปยังโฟลเดอร์ที่ต้องการ แล้วใช้คำสั่ง

git clone [email protected]:git-user-name/repo-name.git