在Eclipse上使用egit插件通過ssh協議方式上傳項目代碼
前戲:
使用ssh方式可以不通過https協議,避免直接提供賬號密碼的方式上傳項目到git在線服務器,如Bitbucket、GitHub,同時極其可靠的保證賬號安全性。
對於像筆主一樣剛出道的程序員,習慣於使用eclipse的GUI界面,面對百度上搜索出來關於git操作的漫天的命令行,總有百般無奈,好不容易找到了GUI上的操作教程,按着做卻一遍遍的出錯,翻查git服務器的ssh支持文檔,也沒查到問題,也考慮過eclipse的bug問題,經過漫長探索,綜合多個帖子博文的資料,終於在剛才攻破了在eclipse上使用egit插件通過ssh協議方式上傳項目代碼的難題!拍手拍手233
操作步驟:
- Eclipse:Window->preferences->General->Network Connections->SSH2
- 在General頁,確認SSH2 home位置,用於存儲SSH協議使用的非對稱加密密鑰文件,默認即可
- 切換到Key Management頁,選擇點擊 Generate DSA key 或 Generate RSA key 按鈕,生成DSA或RSA算法的密鑰,原則上是DSA或RSA都受支持的,個人感覺DSA甚至更好,畢竟兩者中DSA被美國NIST挑選作為數字簽名標准,但是RSA在百度搜索出的縱多博文中被使用,糾結啊~~~(筆主這里為了迎難而上,使用DSA)
- 生成了看上去滿意的密鑰后,填寫Comment簡要注釋,填寫Passphrase(可選填項,相當於password,用於加密保護私鑰,填寫后每次上傳服務器,將要求提供此密碼驗證私鑰的使用權),點擊SavePrivateKey
- 【關鍵步驟】點擊 Export Via SFTP ,按 user@host[:port] 形式輸入公鑰綁定的服務器域,如 git@bitbucket.org 或 git@github.com (user直接就是git,copy粘貼就可以),輸入剛才的Passphrase,點擊各種確定,最后會在 SSH2 home 的密鑰文件id_rsa、id_rsa.pub(文件名稱可自定義)旁邊生成一份known_hosts文件,記錄每個公鑰綁定的服務器,筆主這邊每次都會報出 Failed to export ssh key to remote server 的錯誤,直接忽略。 ----- ps. 最后面push的時候報出 The authenticity of host 'bitbucket.org' can't be established. 之類的錯誤,阻止上傳,基本都是沒執行這一步的原因。
- 點擊 Load Existing Key ,選擇剛才生成的私鑰,輸入Passphrase,點擊Apply (不知道需不需要這一步,試驗多了忘了)
- 點擊旁邊的Known Hosts頁,應該能看到剛才綁定的服務器記錄,返回General頁,確認Private keys中包含了剛才保存的私鑰件id_rsa,沒包含的話點擊旁邊的Add添加進去,最后點擊Apply
- 最好重啟一次Eclipse
- 把生成的公鑰(剛才生成密鑰的時候顯示的那一串東西)綁定到git服務器上,bitbucket是通過manage account里面的SSH keys中粘貼上去的,用記事本打開id_rsa.pub看到的就是,全部復制下來,乃懂的。
- 在bitbucket或github中新建個項目庫,把庫對應的SSH上傳地址拷貝下來待用,類似ssh://git@bitbucket.org/username/myXXOO.git 或 git@bitbucket.org:username/myXXOO.git這種形式的,自己找找
- 右鍵點擊項目,先執行team->share project,添加到git本地版本庫管理,然后需要team->commit,填下comment就可以提交了,再之后team->remote->push,把上面的SSH地址貼到URI上面,之后點擊next,點擊Add all branches spec,點擊Finish,上傳完成。