生成SSH key
1. 首先在本地生成SSH key秒赤,-C參數(shù)是郵箱地址铺浇,不過(guò)其實(shí)可以隨便填
ssh-keygen -C 'xxx@xxx.com'
2. 然后出來(lái)個(gè)問(wèn)題:
Enter file in which to save the key (/Users/chuckie/.ssh/id_rsa):
直接回車
3. 如果之前生成過(guò)SSH key,再來(lái)個(gè)問(wèn)題:
~/.ssh/id_rsa?already exists.
Overwrite (y/n)?
輸入y覆蓋
4. 一路回車就可以創(chuàng)建成功了
5. 登錄gitlab洒闸,github等git倉(cāng)庫(kù),在個(gè)人中心找到settings -> SSH keys,不同服務(wù)器大同小異
6. 選擇新建SSH key將之前生成的ssh key拷進(jìn)去栈雳,title自己隨便改。SSH key文件的位置創(chuàng)建的時(shí)候有出現(xiàn)過(guò)缔莲,默認(rèn)在用戶的主目錄下有個(gè).ssh/id_rsa.pub哥纫,windows:C:\Users\Administrator\.ssh,linux:~/.ssh/id_rsa.pub
解決SSH key不生效的問(wèn)題
好了痴奏,重點(diǎn)來(lái)了蛀骇。運(yùn)氣好的話,跑完上面的步驟读拆,再用git拉取或者推送遠(yuǎn)程代碼就不用手動(dòng)輸入用戶名密碼了擅憔。不過(guò)有的時(shí)候會(huì)出現(xiàn)不生效的情況,還是提示要輸入用戶名密碼檐晕,這是因?yàn)楸镜豷sh agent里的key沒(méi)有刷新暑诸,這里講一下怎么解決。
1. 添加SSH key
ssh-add (如果key存放路徑不是默認(rèn)的話辟灰,這里可以指定路徑)
2. 這里可能會(huì)遇到錯(cuò)誤
Could not open a connection to your authentication agent
運(yùn)行命令
ssh-agent bash //或者 eval "$(ssh-agent -s)"
后重新ssh-add
SSH key不生效的其他原因
一个榕、linux上.ssh文件夾及其中的文件有權(quán)限要求,檢查一下權(quán)限是否符合要求
????1. .ssh目錄的權(quán)限必須是700
????2. .ssh/authorized_keys文件權(quán)限必須是600
二芥喇、有一次我在拉取遠(yuǎn)程代碼的時(shí)候手賤按了個(gè)ctrl+c強(qiáng)制退出西采,結(jié)果再嘗試就開始要手動(dòng)輸入用戶名密碼了,不過(guò)這個(gè)簡(jiǎn)單乃坤,輸了一次之后就不用再輸了
Git報(bào)500 error
拉取或者推送代碼時(shí)失敗苛让,出現(xiàn)如下error信息
error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500 Internal Server Error
這個(gè)可能是數(shù)據(jù)量太大,用Http方式對(duì)數(shù)據(jù)量有限制湿诊,可以通過(guò)修改遠(yuǎn)程url改成用ssh方式連接
git remote set-url origin git@github.com:(group)/(repository).git
具體url可以在repository首頁(yè)找到狱杰,有時(shí)需要加`ssh://`協(xié)議前綴
使用http方式輸入用戶名密碼錯(cuò)誤
解決方法:關(guān)掉輸入框,會(huì)提示命令行輸入厅须,使用命令行輸入用戶名密碼成功登錄仿畸。
同樣的用戶名密碼使用輸入框輸入會(huì)登錄失敗,原因不明。