每次更換系統或者電腦時,都需要重新配置一番 Github SSH 的驗證,記性不太好,寫了一個快速部署的輔助指令碼,直接安裝指令碼提示使用即可,經測試,Linux 和 Windows 下均能使用。
指令碼功能
-
設定 Git 使用者名稱和郵箱
指令碼會提示使用者輸入 Git 使用者名稱和郵箱,並將其設定為全域性配置。 -
生成新的 SSH 金鑰
指令碼會自動生成新的 SSH 金鑰對(私鑰和公鑰),用於與 GitHub 建立安全連線。在生成過程中,使用者可以持續按Enter鍵使用預設設定。 -
將 SSH 私鑰新增到 ssh-agent
指令碼會自動將生成的 SSH 私鑰新增到 ssh-agent 中,以便在後續推送或拉取程式碼時無需每次手動輸入金鑰。 -
將 SSH 公鑰複製到剪貼簿(可選)
如果使用者的系統安裝了xclip
工具,指令碼會嘗試自動將 SSH 公鑰內容複製到剪貼簿,方便使用者在 GitHub 上配置。如果系統未安裝xclip
,指令碼會輸出公鑰內容,提示使用者手動複製。 -
提供 GitHub 配置指引
指令碼會給出在 GitHub 上新增 SSH 公鑰的詳細步驟,引導使用者完成配置。 -
測試 SSH 連線
最後,指令碼會嘗試透過 SSH 連線到 GitHub,驗證配置是否成功。如果連線成功,將輸出相應的提示資訊。
使用方式
- 確保您的系統已安裝 Git 和 SSH 相關工具。
- 下載或複製該指令碼程式碼,儲存為一個
.sh
檔案,例如github_ssh.sh
。
#!/bin/bash
echo "本指令碼用於快速配置Git SSH連線。"
# 設定GitHub的user name和email
echo "請輸入您的Git使用者名稱:"
read git_username
git config --global user.name "$git_username"
echo "請輸入您的Git郵箱:"
read git_email
git config --global user.email "$git_email"
# 生成一個新的SSH金鑰
echo ""
echo "生成新的SSH金鑰..."
echo "接下來的輸入中,你可以持續的回車"
ssh-keygen -t rsa -C "$git_email"
# 獲取SSH金鑰檔案路徑
ssh_key_path=$(echo ~)/.ssh/id_rsa
# 將SSH私鑰新增到 ssh-agent
echo ""
echo "將SSH私鑰新增到ssh-agent..."
eval "$(ssh-agent -s)"
ssh-add "$ssh_key_path"
# 將SSH公鑰新增到GitHub賬戶
echo ""
echo "將SSH公鑰新增到GitHub賬戶..."
ssh_key_pub=$(echo ~)/.ssh/id_rsa.pub
if command -v xclip >/dev/null; then
echo "複製SSH公鑰內容到剪貼簿..."
xclip -selection clipboard < "$ssh_key_pub"
else
echo "無法自動複製SSH公鑰,請手動複製以下內容:"
cat "$ssh_key_pub"
fi
echo ""
echo "請在 Github 頁面進行配置"
echo "1.請登入GitHub,點選頭像,然後在 Settings 頁面點選左側 SSH and GPG keys,隨後請點選右上角綠色的 New SSH key。"
echo "2.在Title輸入框內,為您的新key取個名字,在Key輸入框內,貼上前面複製好的公鑰內容,您無需修改 Key type 下拉框,直接點選 Add SSH key 按鈕即可。"
echo "完成後按任意鍵繼續..."
read -n 1 -s
# 測試連線
echo ""
echo "測試SSH連線..."
echo "如果提示你需要繼續連線,請輸入yes!"
ssh -T git@github.com
echo ""
echo "如果提示中的使用者名稱是您的,說明SSH key已經配置成功。"
- 在終端中,使用
chmod
命令為指令碼新增執行許可權(windows直接下一步):
chmod +x github_ssh.sh
- 執行指令碼:
./setup_git_ssh.sh
# windows 下
# 直接在 sh 指令碼所在目錄右鍵點選 Open Git Bash Here
# 終端輸入 bash ./github_ssh.sh
- 根據指令碼提示輸入相關資訊,並按照指引在 GitHub 上完成配置。
- 配置完成後,您可以使用 SSH 連線克隆或推送程式碼到 GitHub 遠端倉庫。
透過使用該指令碼,您可以快速完成 Git SSH 連線的配置,無需手動執行繁瑣的步驟,從而提高效率和便利性。該指令碼適合初學者或希望快速配置 Git SSH 連線的使用者使用。