ssh key 生成步驟
一、設置git的user name和email:
$ git config --global user.name "lei.li"
$ git config --global user.email "lei.li@gmail.com"
二、生成SSH密鑰過程:
1.查看是否已經有了ssh密鑰:cd ~/.ssh
如果沒有密鑰則不會有此文件夾,有則備份刪除
2.生存密鑰:
$ ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”
按3個回車,密碼為空。
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………
最后得到了兩個文件:id_rsa和id_rsa.pub
3.添加密鑰到ssh:ssh-add 文件名
ssh-agent bash -login -i
ssh-add ~/.ssh/kaka_rsa
將生成公鑰文件放到服務器端(由服務器管理員來放置)
gerrit網站配置
進入設置界面
1.設置用戶名郵箱(用戶名和郵箱要和上面設置git的用戶名和郵箱一致,否則會出現下面錯誤)
2.設置SSH Public Keys
--------------------------------
gpg: Can't check signature: public key not found
error: could not verify the tag 'v1.12.26.ts'
出錯原因是曾使用repo sync從其它庫sync過代碼,刪掉~/.repoconfig即可:
$ rm -rf ~/.repoconfig
--------------------------
fenglongzhong@android11:~/fenglonggood/3rdparty$ git push ssh://fenglong.zhong@10.0.64.28:29418/3rdparty HEAD:refs/for/sprdroid2.3.5_vlx_p20.01_ps7_trout Counting objects: 58, done. Delta compression using up to 24 threads. Compressing objects: 100% (23/23), done. Writing objects: 100% (30/30), 2.60 KiB, done. Total 30 (delta 15), reused 0 (delta 0) remote: Resolving deltas: 0% (0/15) remote: remote: ERROR: In commit a7b96d735bf8cf8b47d7e1e61cab5b2cfb39f113 remote: ERROR: committer email address Fenglong Zhong/Spreadtrum remote: ERROR: does not match your user account. remote: ERROR: remote: ERROR: The following addresses are currently registered: remote: ERROR: fenglong.zhong@spreadtrum.com remote: ERROR: remote: ERROR: To register an email address, please visit: remote: ERROR: http://review.source.spreadtrum.com/gerrit/#/settings/contact remote: remote: To ssh://fenglong.zhong@10.0.64.28:29418/3rdparty ! [remote rejected] HEAD -> refs/for/sprdroid2.3.5_vlx_p20.01_ps7_trout (invalid committer) error: failed to push some refs to 'ssh://fenglong.zhong@10.0.64.28:29418/3rdparty'
原因:配置的git user.email信息與gerrit注冊的郵箱不一致。
解決:
repo forall -c 'git config user.email fenglong.zhong@spreadtrum.com'
repo forall -c 'git config user.name fenglong.zhong'
重新提交你的commit
git reset --soft HEAD~
git commit
執行git push。