วิธีตั้งค่าการใช้งาน Github (แบบไม่ต้องกรอกรหัสผ่านทุกครั้ง) ผ่าน SSH บน Windows
ขั้นตอนการตั้งค่าการใช้งาน 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
การเปลี่ยนไปใช้ remote URLs SSH จาก HTTPS
-
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)
ขอบคุณข้อมูลจาก
เป็นไงบ้างครับ ไม่ยากเลยใช่มั้ยครับ จริงๆ เขียนให้ตัวเองอ่านด้วย ไว้พบกันใหม่ สวัสดีครับ