ขั้นตอนการตั้งค่าการใช้งาน Github แบบไม่ต้องกรอกรหัสผ่านทุกครั้ง บน windows
จริงๆ แล้ว ก็ใช้ git มานานแต่บางครั้งก็ขีเกียจตั้งค่า โดยเฉพาะบน Windows มันมีหลายวิธีมาก แต่ผมถนัดวิธีนี้ทุกสุดและยุ่งยากน้อยสุดแล้ว (เขียนไม่ค่อยละเอียดเท่าไหร่ เหมาะสำหรับคนที่คุ้นชินกับ Putty อยู่แล้ว)
ดาวโหลด และติดตั้ง Putty ไว้ในเครื่องก่อนเลย แนะนำให้ลงแบบ MSI (‘Windows Installer’)
เพราะมันจะมีโปรแกรมเพื่อนบ้านมาให้ด้วย ในโพสนี้จะใช้ puTTYgen
และ plink
หรือใครจะลงแยกก็ได้
ตั้งค่า system environment variable ให้เรียบร้อย ถ้าลงผ่าน installer น่าจะตั้งค่าไว้แล้ว
สร้าง Private Key และ Public Key จาก puTTYgen
โดยเลือกเป็น RSA 2048 (ใครจะเลือกตัวอื่นก็ได้นะ เผื่อตัวที่ดีกว่านี้ในอนาคต) กด generate แล้วก็เอา mouse เป็นวนๆ ที่ว่างๆ จนแถบโหลดเต็ม แล้วก็ตั้งค่ารหัสผ่าน (key passphrase) จะใส่ตรงที่มีการใช้ key นี้ทุกครั้ง (จะไม่ตั้งก็ได้นะ จะได้ตามชื่อบล็อกพอดี)
จากนั้นก็อปปี้ public key จาก puTTYgen
ตัวเดิมไปใส่ใน[หน้า SSH ของการตั้งค่า github ของเรา https://github.com/settings/keys
ตั้งค่า environment variable GIT_SSH
ให้เป็น path ไปยัง plink
เช่น
SET GIT_SSH=C:\path\to\PuTTY\plink.exe
เพิ่ม SSH key ลงไปในโปรแกรม Pageant
C:\path\to\PuTTY\pageant.exe c:\pathtoprivate-ssh-key.ppk`
ตรวจสอบการเชื่อมต่อ เป็นอันเสร็จ
plink -v git@github.com
ถ้าได้ผลลัพธ์ประมาณนี้ถือว่าผ่านแล้วครับ
Hi mildronize! You've successfully authenticated, but GitHub does not provide shell access.
Server sent command exit status 1
Disconnected: All channels closed
หลายๆ คนอาจจะเข้าไปที่ git directory บนเครื่องเราแล้ว ก็ยังต้องใส่ username และ password เหมือนเดิมอยู่อีก อย่าลืมเปลี่ยน remote URL จาก HTTPS เป็น SSH นะครับ เช่น
ถ้าดูที่ github URL เราจะเห็นหน้าตาประมาณนี้ https://github.com/USERNAME/REPOSITORY
เช่นถ้าเรา username: mildronize
และ github repo คือ mildronize.github.io
ดังนั้น URL จะมีหน้าตาประมาณนี้ https://github.com/mildronize/mildronize.github.io
เราอาจจะ clone ด้วย HTTPS มา สังเกตุคือที่ URL จะขึ้นต้นด้วย HTTPS เช่น
git clone https://github.com/mildronize/mildronize.github.io
แต่ถ้าเรา clone ด้วย SSH สังเกตุที่ URL จะขึ้นต้นด้วย git@github.com
มาหน้าตาจะประมาณนี้
git clone git@github.com:mildronize/mildronize.github.io.git
เข้าเรื่องกันเลย ไปดูขั้นตอนการเปลียนจาก remote URL จาก HTTPS เป็น SSH
cd
ไปที่ git directory ของเราก่อนนะ
ให้ใช้ git remote -v
เพือดูว่าตอนนี้ directory นี้ชี้ไปที่ไหน
git remote -v
origin https://github.com/USERNAME/REPOSITORY.git (fetch)
origin https://github.com/USERNAME/REPOSITORY.git (push)
เปลียนจาก remote URL จาก HTTPS เป็น SSH git remote set-url
command.
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
Verify that the remote URL has changed.
git remote -v
# Verify new remote URL
origin git@github.com:USERNAME/REPOSITORY.git (fetch)
origin git@github.com:USERNAME/REPOSITORY.git (push)
เป็นไงบ้างครับ ไม่ยากเลยใช่มั้ยครับ จริงๆ เขียนให้ตัวเองอ่านด้วย ไว้พบกันใหม่ สวัสดีครับ