在windows下進行項目開發,使用git,通過ssh方式與git庫串連,而ssh方式用public key實現串連。
首先需要下載mygit,安裝後使用git bash。git bash(有GUI介面,如安裝TortoiseGit後就可以使用)。我主要使用命令列,其命令列系統類別似linux環境的基本操作命令,可以直接看到c:,如cd /d/mygitwork,進入我的D盤下的工程目錄,放置開發的工程。
我的操作:在windows的git bash中用ssh -keygen ssh -keygen -t rsa產生了金鑰組,cp .ssh/id_rsa.pub authorized_keys 改名。 將這個key交給同事,他作為github上的庫建立者,添加到工程git庫中,我clone該git庫後,就可以使提交代碼了,具體步驟:
如果已經用自己郵箱產生過ssh key,可以省去步驟1和2
1、產生ssh-key
ssh-keygen -t rsa -C "XXX@company.com"
2、重新命名ssh-key
cp ~/.ssh/id_rsa.pub ~/.ssh/XXX@company.com.pub
3、發送郵件給git庫負責人,由其添加到git庫中,獲得使用許可權,將~/.ssh/xxx@company.com.pub放入郵件附件
與git庫串連:ssh方式要利用public key實現寫功能。
(一般公司會搭建自己的git伺服器,如果是自己,可以使用免費的git 伺服器github。具體的使用,在後面介紹)
git庫建好後,用git clone串連,但這樣的庫,只有讀功能,沒有寫功能。如果想寫,必須用ssh方式,串連後,提交自己的public key,由該庫的管理員將該public key添加到git庫,產生存取權限。
public key 的原理在這裡有介紹http://hi.baidu.com/beijiqieys/item/4643900f6ae51223a0312dc8
具體的命令是用ssh -keygen -t rsa產生金鑰組,在用戶端上建立一對公私密金鑰 (公開金鑰檔案:~/.ssh/id_rsa.pub; 私密金鑰檔案:~/.ssh/id_rsa)
然後把公開金鑰放到伺服器上(~/.ssh/authorized_keys), 自己保留好私密金鑰.在使用ssh登入時,ssh程式會發送私密金鑰去和伺服器上的公開金鑰做匹配.如果匹配成功就可以登入了。
將公開金鑰檔案複製到遠程伺服器上:
$ scp ~/.ssh/id_dsa.pub user@remote.host:pubkey.txt
$ ssh user@remote.host
$ mkdir ~/.ssh
$ chmod 700 .ssh
$ cat pubkey.txt >> ~/.ssh/authorized_keys
$ rm ~/pubkey.txt
$ chmod 600 ~/.ssh/*
$ exit
//許可權的設定非常重要,因為不安全的設定安全設定,會讓你不能使用RSA功能。
cat .ssh/id_rsa.pub | ssh user_B@your_ip "cat - >> /root/.ssh/authorized_keys"
也可以用
ssh-keygen #產生認證。
ssh-copy-id -i id-rsa.pub 使用者@ip #把認證傳到遠端那個機器上 並 產生authorized_keys檔案。
github上的庫建立:
建立Github Repository,註冊Github賬戶(https://github.com/),在GitHub,一個項目對應唯一的Git版本庫,建立一個新的版本庫就是建立一個新的項目。訪問儀表板(Dashboard)頁面,如下圖所示,可以看到關注的版本庫中已經有一個,但自己的版本庫為零。在顯示為零的版本庫列表面板中有一個按鈕“New Repository”,點擊該按鈕開始建立新版本庫。
我們為建立立的版本庫命名為“kxt-example”,相應的項目名亦為“ kxt-example ”,建立完畢後訪問項目頁,提示版本庫尚未初始化,並給出如何初始化版本庫的協助,如下圖所示(由於我的kxt-example已經初始化過了,所以下面的圖片是截另一個未初始化的項目)。務必要 set up git,這個官網已經講的很清楚了,這裡不再介紹。
注意任何GitHub使用者均可使用該URL訪問此公開版本庫,但只有版本庫建立者luffyke具有讀寫權限,其他人只有唯讀許可權。在初始化版本庫之前,最好先確認是否是用正確的公開金鑰進行認證。