05/11/2026 10:00น.

SSH Key คืออะไร ตั้งค่าเชื่อม GitHub บน Mac และ Windows แก้ Permission denied (publickey)
#ssh key github
#ssh key คือ
#permission denied publickey
#ssh-keygen
#github ssh
ลองนึกภาพว่าคุณเพิ่งเขียนโปรเจกต์เสร็จ พิมพ์ git push อย่างมั่นใจ แล้ว Terminal ก็ถามชื่อผู้ใช้กับรหัสผ่าน พอใส่รหัสผ่าน GitHub ไปตามปกติ กลับเจอข้อความว่า Password authentication is not supported for Git operations หรือถ้าเคยลองตั้งค่าอะไรมาบ้างแล้ว ก็อาจเจออีกแบบ คือ Permission denied (publickey)
ไม่ต้องตกใจ ไม่ได้มีอะไรพัง และคุณไม่ได้ทำอะไรผิดแปลกกว่าคนอื่น วันนี้ Superdev Academy จะพาไปตั้งค่า SSH Key ให้ GitHub รู้จักเครื่องของคุณ ทีละขั้น ทั้งบน Mac และ Windows แล้วไล่แก้ Permission denied ให้จบในบทความเดียว
ทำไม GitHub ไม่รับรหัสผ่านตอน git push แล้ว
เพราะ GitHub เลิกรับรหัสผ่านบัญชีสำหรับงาน Git แล้วจริงๆ GitHub ประกาศไว้ใน GitHub Blog ว่าตั้งแต่วันที่ 13 สิงหาคม 2021 จะไม่รับรหัสผ่านบัญชีเวลายืนยันตัวตนกับ Git บน GitHub.com อีก ทั้งการใช้ Git ผ่าน Command Line และแอปที่ใช้ Git ส่วน GitHub Desktop ไม่ได้รับผลกระทบ
ในประกาศเดียวกัน GitHub ยังบอกไว้ด้วยว่า ถ้าบัญชีของคุณเปิด Two-factor Authentication (การยืนยันตัวตนสองขั้น) อยู่แล้ว ต้องใช้ Token หรือ SSH มาตั้งแต่ก่อนวันนั้นอยู่แล้ว ใครเปิด 2FA ไว้ตั้งแต่แรกแล้วเพิ่งมาเจอปัญหานี้ ก็ไม่แปลก เพราะรหัสผ่านใช้กับ Git ไม่ได้มาตั้งแต่ต้น
เพราะฉะนั้นรหัสผ่านที่ใช้ล็อกอินเว็บ GitHub จะเอามาใช้กับ git push ไม่ได้แล้ว ทางที่เหลือมีสองทางหลัก คือใช้ URL แบบ HTTPS คู่กับ Token หรือใช้ URL แบบ SSH คู่กับ SSH Key บทความนี้เลือกทางที่สอง เพราะตั้งครั้งเดียวแล้วใช้ได้ยาว ส่วนจะเลือกแบบไหนดี เราเทียบให้ไว้ช่วงท้าย
SSH Key คืออะไร: public key กับ private key ทำงานยังไง
SSH Key คือไฟล์คู่หนึ่งที่สร้างขึ้นมาพร้อมกัน ใช้พิสูจน์ว่าเครื่องนี้คือคุณจริงๆ โดยไม่ต้องส่งรหัสผ่าน พูดง่ายๆ ให้นึกถึงแม่กุญแจกับลูกกุญแจที่ทำมาเป็นชุดเดียวกัน
Public key (ไฟล์ที่ลงท้ายด้วย
.pub): เหมือนแม่กุญแจ เอาไปฝากไว้กับ GitHub ได้ ใครเห็นก็ไม่เป็นไร เพราะเอาไปเปิดอะไรไม่ได้Private key (ไฟล์ชื่อเดียวกันแต่ไม่มี
.pub): เหมือนลูกกุญแจ ต้องอยู่ในเครื่องคุณเท่านั้น ห้ามส่งให้ใคร ห้ามวางในแชต และห้าม Commit ขึ้น GitHub
ตอนคุณ push ระบบจะใช้ private key ในเครื่องพิสูจน์กับ GitHub ว่าเป็นคู่เดียวกับ public key ที่ฝากไว้ GitHub ไม่เคยได้เห็น private key ของคุณเลย หลักคิดเรื่องเก็บของลับไม่ให้หลุดเหมือนกับที่เราเล่าไว้ใน API Key คืออะไร เก็บในไฟล์ .env ยังไงไม่ให้หลุดขึ้น GitHub
public key หนึ่งอันที่ใส่ไว้ในบัญชี ใช้ได้กับทุก repo ที่บัญชีนั้นมีสิทธิ์ ไม่ต้องตั้งแยกทีละ repo ส่วนถ้าคุณมีหลายเครื่อง เช่น โน้ตบุ๊กกับคอมที่บ้าน ทางที่จัดการง่ายคือสร้าง key แยกเครื่องละคู่ แล้วตั้งชื่อตอนใส่ใน GitHub ให้บอกว่าเป็นเครื่องไหน วันที่เครื่องไหนหายหรือเลิกใช้ ก็ลบ key ของเครื่องนั้นอันเดียว เครื่องอื่นยังทำงานต่อได้ตามปกติ
จำง่ายๆ: ไฟล์ .pub เอาไปใส่ GitHub ส่วนไฟล์ที่ไม่มี .pub ห้ามออกจากเครื่อง
ตั้งค่า SSH Key บน Mac
ทุกคำสั่งในส่วนนี้พิมพ์ใน Terminal ทีมเราลองรันจริงบน macOS 14.1 ที่มี OpenSSH_9.4p1 ติดมากับเครื่อง ถ้าคุณใช้ Windows ข้ามไปหัวข้อถัดไปได้เลย
1. เช็กก่อนว่ามี SSH Key อยู่แล้วหรือยัง
ls -al ~/.sshเครื่องหมาย ~ หมายถึงโฟลเดอร์ผู้ใช้ของคุณ ส่วน .ssh เป็นโฟลเดอร์ซ่อน เปิดใน Finder ปกติจะมองไม่เห็น ทุกไฟล์ที่เกี่ยวกับ SSH ในบทความนี้อยู่ในโฟลเดอร์นี้ทั้งหมด
ถ้าเห็นไฟล์ชื่อ id_ed25519.pub, id_ecdsa.pub หรือ id_rsa.pub แปลว่าเคยสร้างไว้แล้ว ข้ามไปขั้นที่ 3 ได้ ถ้าขึ้นว่าไม่มีโฟลเดอร์ .ssh หรือไม่มีไฟล์พวกนี้ ก็สร้างใหม่ในขั้นถัดไป
2. สร้าง SSH Key ด้วย ssh-keygen
เปลี่ยนอีเมลเป็นอีเมลที่ใช้กับ GitHub ของคุณ
ssh-keygen -t ed25519 -C "your_email@example.com"ระบบจะถามที่เก็บไฟล์ กด Enter เพื่อใช้ค่าเริ่มต้นได้เลย จากนั้นจะให้ตั้ง Passphrase (รหัสผ่านของตัว key) แนะนำให้ตั้ง เพราะถ้าเครื่องหายหรือไฟล์หลุด คนอื่นก็ยังเอา key ไปใช้ไม่ได้ทันที ผลที่ได้บนเครื่องทีมเราหน้าตาแบบนี้ (ทีมเราสร้าง key ทดสอบไว้ในโฟลเดอร์แยก จึงเปลี่ยน path ในตัวอย่างให้เป็นค่าเริ่มต้น และตัดภาพ randomart ท้ายผลลัพธ์ออก)
Generating public/private ed25519 key pair.
Your identification has been saved in /Users/YOU/.ssh/id_ed25519
Your public key has been saved in /Users/YOU/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:u6Kz5piO21Hf3VgDoofTPCE70Z/cuWsfipMo7bI8rDo your_email@example.comถ้าตอนสร้างเผลอกด Enter ข้าม Passphrase ไป ไม่ต้องสร้าง key ใหม่ GitHub Docs ให้ตั้งหรือเปลี่ยน Passphrase ทีหลังได้ด้วยคำสั่งนี้ ทีมเราลองกับ key ทดสอบแล้ว ระบบตอบว่า Your identification has been saved with the new passphrase. โดย key คู่เดิมยังใช้ได้เหมือนเดิม
ssh-keygen -p -f ~/.ssh/id_ed25519เหตุผลที่ GitHub แนะนำให้มี Passphrase เขียนไว้ตรงๆ ว่า ถ้าใครเข้าถึงเครื่องของคุณได้ คนนั้นก็เข้าได้ทุกระบบที่ใช้ key นี้ Passphrase จึงเป็นอีกชั้นที่กันไว้ และไม่ได้ทำให้ใช้งานลำบาก เพราะ ssh-agent ในขั้นถัดไปจะจำไว้ให้
ลองดูสิทธิ์ไฟล์สองไฟล์ที่ได้ จะเห็นว่า private key ถูกตั้งให้มีแค่เจ้าของเครื่องอ่านได้ ส่วน public key ใครก็อ่านได้ ตรงกับหน้าที่ของมันพอดี
-rw------- id_ed25519
-rw-r--r-- id_ed25519.pubเรื่อง Ed25519 กับ RSA ทาง GitHub Docs แนะนำให้ใช้ Ed25519 เป็นหลัก และให้ใช้ ssh-keygen -t rsa -b 4096 เฉพาะกับระบบเก่าที่ไม่รองรับ Ed25519 ส่วน key แบบ DSA นั้น GitHub เลิกรองรับไปตั้งแต่ 15 มีนาคม 2022
3. เพิ่ม key เข้า ssh-agent
ssh-agent คือโปรแกรมที่จำ key กับ Passphrase ไว้ให้ จะได้ไม่ต้องพิมพ์ Passphrase ทุกครั้งที่ push เริ่มจากเปิด agent ก่อน
eval "$(ssh-agent -s)"จากนั้นเปิดไฟล์ ~/.ssh/config ถ้ายังไม่มี สร้างด้วย touch ~/.ssh/config แล้วใส่ข้อความนี้
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519ถ้าไม่ได้ตั้ง Passphrase ให้ลบบรรทัด UseKeychain ออก แล้วเพิ่ม key เข้า agent พร้อมเก็บ Passphrase ไว้ใน Keychain ของ Mac
ssh-add --apple-use-keychain ~/.ssh/id_ed25519GitHub Docs ย้ำว่าให้ใช้คำสั่ง ssh-add ที่มากับ macOS เอง ไม่ใช่ตัวที่ติดตั้งจาก Homebrew หรือ MacPorts เพราะตัวเลือก --apple-use-keychain มีเฉพาะในเวอร์ชันของ Apple ถ้าเคยลง OpenSSH ผ่าน Homebrew แล้วเจอ error ว่าไม่รู้จักตัวเลือกนี้ ให้สงสัยข้อนี้ก่อน
ถ้าใช้ macOS รุ่นก่อน Monterey (12.0) ตัวเลือกนี้จะเขียนเป็น -K แทน และถ้าไม่ได้ตั้ง Passphrase ก็รัน ssh-add โดยไม่ต้องใส่ตัวเลือกนี้
4. คัดลอก public key
pbcopy < ~/.ssh/id_ed25519.pubถ้าเปิดไฟล์ .pub ดูด้วย cat ~/.ssh/id_ed25519.pub จะเห็นข้อความบรรทัดเดียว แบ่งเป็น 3 ส่วนคั่นด้วยช่องว่าง ของ key ทดสอบที่ทีมเราสร้างหน้าตาแบบนี้ (ตัดตรงกลางออก)
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...H20qRvz4I your_email@example.comส่วนแรกบอกชนิดของ key ส่วนกลางคือตัว key จริง ส่วนท้ายคืออีเมลที่ใส่ไว้หลัง -C ตอนสร้าง ซึ่ง GitHub Docs อธิบายว่าใช้เป็นป้ายชื่อ (Label) ของ key ตอนวางใน GitHub ต้องวางให้ครบทั้งบรรทัดและห้ามมีบรรทัดว่างหรือช่องว่างเกินเข้ามา
คำสั่งนี้คัดลอกเนื้อหาไฟล์ .pub ไปไว้ใน Clipboard สังเกตว่าคัดลอก ไฟล์ .pub เท่านั้น ไม่ใช่ไฟล์ที่ไม่มีนามสกุล
ตั้งค่า SSH Key บน Windows
ส่วนนี้ทีมเรายังไม่ได้รันเองบนเครื่อง Windows ขั้นตอนทั้งหมดเรียบเรียงจาก GitHub Docs ตรงๆ ถ้าเจอข้อความไม่ตรงกับในนี้ ให้ยึดหน้าเอกสารของ GitHub เป็นหลัก
1. เช็ก key เดิมและสร้าง key ใหม่
GitHub Docs ให้ใช้ Git Bash (มากับ Git for Windows) สำหรับขั้นนี้ เปิด Git Bash แล้วใช้คำสั่งเดียวกับ Mac ได้เลย คือ ls -al ~/.ssh เพื่อเช็ก และ ssh-keygen -t ed25519 -C "your_email@example.com" เพื่อสร้าง ไฟล์จะถูกเก็บไว้ที่ /c/Users/YOU/.ssh/ หรือ C:\Users\YOU\.ssh\ ในมุมมองของ Windows
2. เปิด ssh-agent แล้วเพิ่ม key
เปิด PowerShell แบบ Run as administrator แล้วสั่งให้ service ของ ssh-agent ทำงาน
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agentจากนั้นเปิด PowerShell หน้าต่างใหม่แบบปกติ (ไม่ต้องเป็น administrator) แล้วเพิ่ม key
ssh-add c:/Users/YOU/.ssh/id_ed25519GitHub Docs เตือนไว้อีกเรื่องหนึ่ง บน Windows อาจมี OpenSSH สองชุดอยู่ด้วยกัน คือชุดของ Windows เองกับชุดที่มากับ Git for Windows ถ้าเก็บ Passphrase ไว้ใน agent แล้วแต่ git push ยังถาม Passphrase อีก ให้บอก Git ให้ใช้ ssh ของ Windows
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"อีกทางหนึ่งที่ GitHub Docs บอกไว้ คือติดตั้ง Git for Windows ใหม่แล้วเลือกตัวเลือก Use external OpenSSH ระหว่างติดตั้ง ส่วนคนที่ใช้ Git Bash เป็นหลัก หน้า Working with SSH key passphrases ใน GitHub Docs มีสคริปต์ให้คัดลอกไปใส่ในไฟล์ ~/.profile หรือ ~/.bashrc เพื่อให้ ssh-agent เปิดเองทุกครั้งที่เปิด Git Bash
3. คัดลอก public key
cat ~/.ssh/id_ed25519.pub | clipถ้าใช้ WSL (Windows Subsystem for Linux) ให้เปลี่ยนเป็น clip.exe และถ้า clip ใช้ไม่ได้เลย จะเปิดโฟลเดอร์ซ่อน .ssh แล้วเปิดไฟล์ .pub ด้วยโปรแกรมแก้ไขข้อความ แล้วคัดลอกเองก็ได้ GitHub Docs ให้ใช้ clip < ~/.ssh/id_ed25519.pub ก็ได้ แต่ถ้าใช้ PowerShell แล้วขึ้น ParseError เรื่องเครื่องหมาย < ให้ใช้แบบที่มี | clip ข้างบนแทน
เพิ่ม public key ใน GitHub แล้วทดสอบการเชื่อมต่อ
ขั้นนี้ทำเหมือนกันทั้งสองระบบ
เข้า GitHub แล้วกดรูปโปรไฟล์มุมขวาบน เลือก Settings
เมนูด้านซ้ายในส่วน Access เลือก SSH and GPG keys แล้วกด New SSH key
ช่อง Title ตั้งชื่อที่บอกว่าเป็นเครื่องไหน เช่น "MacBook ส่วนตัว" ช่อง Key type เลือก Authentication Key
วาง public key ที่คัดลอกมาลงช่อง Key แล้วกด Add SSH key
จากนั้นกลับมาที่ Terminal แล้วทดสอบ
ssh -T git@github.comครั้งแรกจะมีคำเตือนว่ายังไม่รู้จักเครื่องปลายทาง พร้อมแสดง fingerprint ให้ดูว่าบรรทัด ED25519 ตรงกับค่าที่ GitHub ประกาศไว้ คือ SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU ถ้าตรง ค่อยพิมพ์ yes ตอนทีมเราทดสอบ fingerprint ที่ได้ตรงกับค่านี้ทุกตัว
พอพิมพ์ yes แล้ว ตอนทีมเราทดสอบจะขึ้นบรรทัดนี้ตามมา
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.คำว่า Warning ฟังดูน่ากลัว แต่จริงๆ แค่บอกว่าเครื่องคุณจดจำ GitHub ไว้ในไฟล์ ~/.ssh/known_hosts แล้ว ครั้งต่อไปจะไม่ถามซ้ำอีก ขั้นตอนเทียบ fingerprint ก่อนพิมพ์ yes มีไว้ยืนยันว่าคุณกำลังคุยกับ GitHub ตัวจริง ไม่ใช่เครื่องอื่นที่แอบอ้าง
ถ้าทุกอย่างถูกต้อง GitHub Docs ระบุว่าจะเห็นข้อความแบบนี้ โดย USERNAME เป็นชื่อบัญชีของคุณ
Hi USERNAME! You've successfully authenticated, but GitHub does not
provide shell access.ข้อความ "does not provide shell access" ไม่ใช่ error แค่บอกว่า GitHub ไม่ให้เข้า Shell ของเครื่องเขา คำสั่งนี้จบด้วย exit code 1 เป็นเรื่องปกติ ไม่ต้องตกใจ
เปลี่ยน repo เดิมจาก HTTPS เป็น SSH
ถึงตรงนี้หลายคนตั้งค่าครบแล้ว แต่ push repo เดิมก็ยังถูกถามรหัสผ่านอยู่ดี สาเหตุคือ repo นั้นยังผูกกับ URL แบบ HTTPS ลองเข้าโฟลเดอร์โปรเจกต์แล้วดู
git remote -vถ้าเห็นขึ้นต้นด้วย https://github.com/... ให้เปลี่ยนเป็น URL แบบ SSH ตามที่ GitHub Docs อธิบาย โดยแทน OWNER กับ REPOSITORY เป็นชื่อบัญชีและชื่อ repo ของคุณ
git remote set-url origin git@github.com:OWNER/REPOSITORY.gitสำหรับโปรเจกต์ใหม่ ตอน clone ให้กดปุ่ม Code บนหน้า repo แล้วเลือกแท็บ SSH แทน HTTPS URL จะขึ้นต้นด้วย git@github.com: ถ้ายังไม่คล่องเรื่อง clone, commit และ push ลองอ่าน Git สำหรับผู้เริ่มต้น: เข้าใจ Add, Commit, Push แบบเห็นภาพ ก่อนก็ได้
ยังเจอ Permission denied (publickey) อยู่: จุดที่ต้องเช็ก
ทีมเราลองทดสอบด้วย key ที่ยังไม่ได้ผูกกับบัญชี GitHub ไหนเลย ผลที่ได้คือ error ตัวนี้เป๊ะ
git@github.com: Permission denied (publickey).ความหมายตรงตัว คือ GitHub ไม่เจอ public key ที่ตรงกับ private key ที่เครื่องคุณส่งไป รายการด้านล่างเป็นจุดหลักที่ควรเช็กตามลำดับ เรียบเรียงจาก หน้าแก้ปัญหาของ GitHub Docs ไม่ใช่ทุกกรณีที่เป็นไปได้
เครื่องมี key อยู่ใน agent หรือเปล่า: รัน
ssh-add -l -E sha256ถ้าขึ้นว่าไม่มี identity ให้กลับไปทำขั้นเพิ่ม key เข้า ssh-agent ใหม่key ในเครื่องตรงกับที่ใส่ใน GitHub ไหม: fingerprint คือรหัสสั้นๆ ที่คำนวณจากตัว key ขึ้นต้นด้วย
SHA256:เหมือนตอนสร้าง key ในขั้นที่ 2 ใช้เทียบว่าเป็น key เดียวกันหรือเปล่าโดยไม่ต้องอ่าน key ทั้งยาว เอา fingerprint จากคำสั่งข้างบนไปเทียบกับหน้า Settings ในเมนู SSH and GPG keys ถ้าไม่ตรง แปลว่าเผลอคัดลอกผิดไฟล์ หรือใส่ key ไว้คนละบัญชีใช้ user
gitเสมอ: ต้องพิมพ์git@github.comไม่ใช่ชื่อผู้ใช้ของคุณอย่าใช้
sudoกับ Git: ถ้าสร้าง key ด้วยผู้ใช้ปกติแต่รันsudo git pushคำสั่งนั้นจะไม่ได้ใช้ key ชุดเดียวกับที่คุณสร้างไว้key ที่ไม่ได้ใช้นานเกิน 1 ปี: GitHub Docs ระบุว่าถ้า SSH key ไม่ถูกใช้เลยเป็นเวลา 1 ปี GitHub จะลบ key นั้นออกจากบัญชีให้อัตโนมัติ ถ้าคุณกลับมาเปิดโปรเจกต์เก่าหลังหยุดไปนาน แล้ว push ไม่ได้ ให้ดูก่อนว่า key ยังอยู่ในหน้า SSH keys หรือเปล่า
repo ขององค์กรที่ใช้ SAML Single Sign-On: ต้อง Authorize key ให้องค์กรนั้นก่อน ถึงจะใช้กับ repo ขององค์กรได้ ถ้า push repo ส่วนตัวได้แต่ repo ของบริษัทไม่ได้ ให้สงสัยข้อนี้ก่อน
ดูรายละเอียดว่าพังตรงไหน: รัน
ssh -vT git@github.comแล้วดูว่า SSH พยายามใช้ไฟล์ key ไหนบ้าง ถ้าไม่เห็นไฟล์ของคุณในรายการ ปัญหาอยู่ที่การตั้งค่าในเครื่อง ไม่ใช่ที่ GitHub
อีกเรื่องที่ไม่ควรมองข้ามคือ SSH Key ไม่ได้ปลอดภัยไปตลอด ถ้าโน้ตบุ๊กหาย หรือสงสัยว่าไฟล์ private key หลุด key นั้นยังเข้า repo ของคุณได้ GitHub Docs แนะนำให้เข้าไปที่หน้า SSH keys ในบัญชี แล้วกด Delete key ที่ไม่รู้จักหรือไม่ได้ใช้แล้ว ส่วน Passphrase ที่ตั้งไว้ตอนสร้าง key คือสิ่งที่ซื้อเวลาให้คุณได้ลบ key ทันก่อนคนอื่นจะใช้ได้
SSH หรือ HTTPS + Personal Access Token เลือกแบบไหน
ทั้งสองแบบใช้กับ GitHub ได้จริง ตอบแบบตรงๆ ไม่อ้อม:
เลือก SSH ถ้าคุณใช้เครื่องตัวเองเป็นหลักและอยากตั้งครั้งเดียวจบ ไม่ต้องสร้างและเก็บ Token เพิ่ม
เลือก HTTPS + Token ถ้าคุณอยู่ในเครือข่ายที่ต่อพอร์ต 22 ของ SSH ไม่ได้ GitHub Docs ระบุว่า URL แบบ HTTPS ใช้ได้แม้อยู่หลัง Firewall หรือ Proxy เพียงแต่ตอนถามรหัสผ่าน ต้องใส่ Personal Access Token แทนรหัสผ่านบัญชี
และถ้าคุณยังไม่ถนัดพิมพ์คำสั่งเลย มีทางที่สามด้วย GitHub Docs เขียนไว้ว่าถ้าติดตั้ง GitHub Desktop ก็ใช้มัน clone repo ได้โดยไม่ต้องยุ่งกับ SSH Key ส่วนในประกาศเลิกรับรหัสผ่านปี 2021 GitHub ก็ระบุว่า GitHub Desktop ไม่ได้รับผลกระทบ เหมาะกับช่วงแรกที่ยังไม่อยากเปิด Terminal แต่ถ้าวันหนึ่งต้องทำงานบน Server หรือใช้ Terminal ใน VS Code ยังไงก็ต้องกลับมาตั้ง SSH อยู่ดี
ถ้ายังไม่แน่ใจว่า GitHub ทำหน้าที่อะไรในทีมบ้าง ลองอ่าน GitHub คืออะไร และถ้ายังไม่คุ้นกับการพิมพ์คำสั่งใน Terminal มี Terminal/Command Line ฉบับมือโปร ให้ปูพื้นก่อน
สรุป: ตั้งค่า SSH Key เชื่อม GitHub ทีละขั้น
GitHub ไม่รับรหัสผ่านบัญชีตอนใช้ Git มาตั้งแต่ 13 สิงหาคม 2021 SSH Key จึงเป็นทางที่สะดวกที่สุดสำหรับเครื่องของตัวเอง ขั้นตอนทั้งหมดมีแค่นี้ เช็ก key เดิม สร้าง key ด้วย ssh-keygen -t ed25519 เพิ่มเข้า ssh-agent เอาไฟล์ .pub ไปใส่ใน GitHub ทดสอบด้วย ssh -T git@github.com แล้วเปลี่ยน remote ของ repo เดิมให้เป็น SSH สิ่งเดียวที่ต้องระวังตลอดคือไฟล์ private key ห้ามออกจากเครื่อง
เปิด Terminal แล้วลอง ssh -T git@github.com ดูตอนนี้เลย ถ้าเห็นชื่อบัญชีของคุณขึ้นมา ครั้งต่อไปที่ git push ก็ไม่ต้องใส่รหัสผ่านบัญชี GitHub อีกแล้ว
ติดตามบทความและเทคนิคสำหรับคนเริ่มต้นสายโปรแกรมเมอร์ได้ที่ช่องทางของเรา
Facebook: Superdev Academy Thailand (https://www.facebook.com/superdev.academy.th)
YouTube: Superdev Academy Channel (https://www.youtube.com/@SuperdevAcademy)
Instagram: @superdevacademy (https://www.instagram.com/superdevacademy/)
TikTok: @superdevacademy (https://www.tiktok.com/@superdevacademy?lang=th-TH)
FAQ: คำถามที่พบบ่อยเกี่ยวกับบทความนี้
รวมคำถามและคำตอบที่ช่วยให้คุณเข้าใจเนื้อหาในบทความนี้ได้ดียิ่งขึ้น