剛開始學寫程式、準備把人生第一個專案上傳到 GitHub 時,常常會遇到一個大魔王:「身份驗證」。很多新手會直覺地想把帳號密碼寫在專案的設定檔裡,但請千萬記住:這非常不安全!GitHub 其實是透過您電腦中的「SSH 金鑰對」(就像是專屬於你電腦的 VIP 通行證)來進行安全連線的。今天這篇保姆級教學,將帶你一步步設定 SSH 公鑰,並順利解決背景上傳卡住的痛點,讓你一次通關,告別密碼地獄!
1. 為什麼不要把密碼寫在專案裡?
想像一下,如果把家門鑰匙直接黏在門把上,那鎖還有意義嗎?在開發軟體時,如果我們將帳號與密碼直接寫在設定檔或程式碼中,一旦專案公開或是被其他人拷貝,您的帳號安全就等於完全裸奔了。因此,現代開發流程中,不需要(也不應該)將任何帳號或密碼硬編碼寫入專案檔案裡。取而代之的,是使用極度安全的「SSH 金鑰對」認證機制。
2. 步驟一:將電腦的 SSH 公鑰交給 GitHub
要把電腦裡的專案推送到 GitHub,我們得先讓 GitHub 認識你的電腦。我們需要把電腦裡的「公鑰」註冊進去,設定非常簡單:
💡 加碼教學:如何找到並複製我電腦的公鑰?
請打開您電腦的終端機(Mac 為 Terminal / Windows 為 PowerShell),輸入以下指令來複製:
🍎 Mac / Linux 使用者:請輸入 cat ~/.ssh/id_rsa.pub | pbcopy 或 cat ~/.ssh/id_ed25519.pub | pbcopy 然後按 Enter。此時公鑰已經自動複製到剪貼簿囉!
🪟 Windows 使用者:請輸入 clip < ~/.ssh/id_rsa.pub 或 clip < ~/.ssh/id_ed25519.pub 然後按 Enter。
⚠️ 終端機顯示「No such file or directory」找不到檔案?
別慌!這代表您的電腦是第一次設定,還沒有這把鑰匙。我們來手動打一把,請在終端機輸入(請將信箱換成您的註冊信箱):ssh-keygen -t ed25519 -C "您的信箱@gmail.com"
接著終端機會問你存放路徑和密碼,請什麼都不要輸入,直接「連續按下 3 次 Enter 鍵」到底(代表使用預設值且不設密碼,這能避免後續上傳卡關)。看到一個奇怪的方塊圖案後就成功了!此時請再執行一次上面複製公鑰的指令即可。
- 打開瀏覽器,登入您的 GitHub 帳號。
- 點擊右上角的大頭貼,在下拉選單中找到並點擊 Settings(設定)。
- 在左側選單中,找到 SSH and GPG keys 並點擊進入。
- 點擊右上角的綠色按鈕 New SSH key。
- Title(標題):可以隨便填,建議填寫能清楚辨識這台電腦的名稱,例如:
My Mac M2或是工作用筆電。 - Key(金鑰內容):將剛剛用終端機複製好的公鑰代碼,完整貼入大框框裡。
- 點擊 Add SSH key 儲存。恭喜!GitHub 現在已經認得你的專屬電腦了。
3. 踩坑預警:為什麼軟體背景上傳總是卡住?
很多新手興沖沖設定好公鑰後,回到常用的編輯器(例如 VS Code)或圖形化介面軟體點擊上傳按鈕,卻發現進度條卡住一動也不動!到底是哪裡出錯了呢?
💡 關鍵原因解密:因為當我們在背景執行 git push 上傳時,如果您的 SSH 金鑰當初有設定密碼 (Passphrase),或者這是您的電腦第一次連線該 GitHub 倉庫,終端機會在背景跳出安全提示,詢問您 Are you sure you want to continue connecting (yes/no/[fingerprint])?。因為背景程式無法像真人一樣輸入「yes」或「密碼」,它就會一直傻傻地卡在等待輸入的狀態中,無限期罷工!
4. 步驟二:在終端機手動執行第一次推送 (破除卡關)
為了解決這個卡住的問題,最簡單且一勞永逸的解法,就是由您親自在電腦的終端機 (Terminal) 手動執行一次推送。只要手動成功解鎖過這一次,未來的連線就會順暢無阻!請打開 Mac 上的「終端機」,跟著以下指令無腦操作:
Step 1. 切換到發佈資料夾
請輸入 cd 加上一個空白鍵,接著貼上你的專案資料夾路徑,告訴終端機你要在哪個資料夾執行動作。例如:
cd /Users/YourName/Desktop/Your-releaseStep 2. 推送專案到 GitHub 倉庫
執行推送前,請確保你已經在 GitHub 網頁上建立好一個名為 polik-recovery (或你的專案名稱) 的「空倉庫」。接著,複製貼上以下指令來進行強制推送:
git push -u origin main -f⚠️ 執行時的超重要注意事項:
• 如果終端機詢問您是否繼續連線,請勇敢地在鍵盤輸入 yes 然後按 Enter。
• 如果詢問金鑰密碼 (Enter passphrase),請輸入您當初設定 SSH Key 時的密碼。(新手必知:輸入密碼時,螢幕畫面上不會顯示任何星星符號或字元,這是正常的資安保護機制,請自信地盲打完畢並按下 Enter 即可!)
5. 步驟三:啟用 GitHub Pages,讓網頁上線!
當終端機跑完一堆進度條,最後顯示類似 Branch 'main' set up to track remote branch 'main' from 'origin' 的訊息時,就代表程式碼上傳大成功啦!最後一哩路,如果您上傳的是靜態網站,只要到 GitHub 網頁上開啟服務即可:
- 進入您剛剛成功上傳的 GitHub 倉庫 (Repository)。
- 點選上方選單最右側的 Settings (設定)。
- 在左側側邊欄中找到並點擊 Pages。
- 在 Source 或 Build and deployment 的區域中,將分支 (Branch) 選單調整為 main,然後點擊 Save 儲存。
稍等幾分鐘重新整理網頁,GitHub 就會自動為您生成一個專屬的網頁連結了!第一次設定 SSH 雖然有點繁瑣,但熬過了這次的「工程師成人禮」,以後每次上傳都只要簡單按下一鍵或一行指令就能解決,完全不用再反覆輸入帳號密碼。快去享受流暢開發的痛快感吧!
cd, git push -f 強制推送等)時,請務必先確認自己當下的資料夾路徑與電腦環境,避免誤傳或不小心覆蓋到非預期之專案檔案。各作業系統與本地環境設定可能略有差異,實際操作情況請以個人設備為主。
留言
張貼留言