git提交時有https和ssh兩種驗證方式,https方式除了速度慢以外,在每次提交時還需要輸入帳號和密碼;而使用ssh可以生成乙個公鑰-私鑰對,我們會把公鑰新增到git的伺服器,把私鑰放在本地。提交檔案的時候git伺服器會用公鑰和客戶端提交私鑰做驗證,如果驗證通過則提交成功。
對於github新增公鑰有以下幾種情況:
1.單個github使用者推送單個github使用者;
2.單個github使用者推送多個github使用者;
3.多個github使用者推送多個github使用者;
git config --global user.name "yourname"
git config --global user.email "youremail"
ssh -v
sudo
apt-get
install openssh-client openssh-server #ssh安裝命令
cd ~/.ssh
#若沒有id_rsa和id_rsa.pub 則可以使用預設生成命令
ssh-keygen -t rsa -c "some explanations"
#若之前已存在,可以自定義生成
ssh-keygen -t rsa -c "some explanations」 -f ~/.ssh/id_rsa_new
在~/.ssh目錄下有id_rsa/id_rsa_new(私鑰)和 id_rsa.pub/id_rsa_new.pub(公鑰)兩個檔案,其中.pub檔案裡存放的即是公鑰key。
ssh-add ~/.ssh/id_rsa
執行ssh-add時出現could not open a connection to your authentication agent則先執行如下命令即可:
ssh-agent bash
登入到github,選擇settings ,選擇add ssh key,把.pub的內容複製到裡面即可。
ssh -t [email protected]
hi *** you've successfully authenticated, but github does not provide shell access.
如果有以上提示,說明公鑰新增成功。
這種情況多用於同乙個使用者推送不同專案的倉庫(如個人專案和工作專案):
ssh-keygen -t rsa -c "some explanations」 -f ~/.ssh/id_rsa_p
ssh-keygen -t rsa -c "some explanations」 -f ~/.ssh/id_rsa_w
ssh-add ~/.ssh/id_rsa_p
ssh-add ~/.ssh/id_rsa_w
vim config
#personal
host personal
hostname github.com
user [email protected]
preferredauthentications publickey identityfile ~/.ssh/id_rsa_p
#work
host work
hostname github.com
user [email protected]
preferredauthentications publickey identityfile ~/.ssh/id_rsa_w
ssh -t git@personal #git@host
hi *** you've successfully authenticated, but github does not provide shell access
如果有以上提示,說明連線成功。
這種情況多用於不同使用者推送不同github使用者的倉庫(個人賬戶到個人專案倉庫,工作賬戶推送工作專案倉庫),和配置單個git使用者的方式不同,這裡我們需要為每個專案分別配置,所以要命令列進入倉庫資料夾再設定。
ssh-keygen -t rsa -c "some explanations」 -f ~/.ssh/id_rsa_p2p
ssh-keygen -t rsa -c "some explanations」 -f ~/.ssh/id_rsa_w2w
ssh-add ~/.ssh/id_rsa_p2p
ssh-add ~/.ssh/id_rsa_w2w
cd ~/.ssh
vim config
#personal to personal
host p2p
hostname github.com
user [email protected]
preferredauthentications publickey identityfile ~/.ssh/id_rsa_p2p
#work to work
host w2w
hostname github.com
user [email protected]
preferredauthentications publickey identityfile ~/.ssh/id_rsa_w2w
cd personalrepository
git config --local user.name "yourname"
git config --local user.email "[email protected]"
cd workrepository
git config --local user.name "yourname"
git config --local user.email "[email protected]"
其中全域性使用者資訊存在~/.gitconfig中,區域性使用者資訊存在對應倉庫目錄.git/config中。 github新增ssh公鑰
一 windows下生成github的ssh公鑰 1.安裝git,開啟git bash 2.鍵入命令 ssh keygen t rsa c email email.com email email.com 是github賬號 3.提醒你輸入key的名稱,輸入如id rsa 4.在c documents...
github 生成 新增SSH公鑰
生成 新增ssh公鑰 你可以按如下命令來生成 sshkey 你自己的郵箱 ssh keygen t rsa c xx xx.com generating public private rsa key pair.按照提示完成三次回車,即可生成 ssh key。通過檢視 ssh id rsa.pub 檔...
如何在github新增公鑰
開啟gitbash 如果沒有的話首先需要安裝git 輸入如下命令 其中的郵箱必須是你註冊github的郵箱,它是你身份的標識。輸入回車,然後按提示回車或輸入y,使用預設名稱即可 進入使用者目錄下的.ssh 目錄,下面就是生成的key檔案 開啟檔案.pub結尾的檔案,複製裡面的內容 開啟github設...