標籤:
http://git-scm.com/book/zh/ch4-3.html
產生 SSH 公開金鑰
如前所述,許多 Git 伺服器都使用 SSH 公開金鑰進行認證。 為了向 Git 伺服器提供 SSH 公開金鑰,如果某系統使用者尚未擁有密鑰,必須事先為其產生一份。 這個過程在所有作業系統上都是相似的。 首先,你需要確認自己是否已經擁有密鑰。 預設情況下,使用者的 SSH 金鑰儲存在其 ~/.ssh 目錄下。 進入該目錄並列出其中內容,你便可以快速確認自己是否已擁有密鑰:
$ cd ~/.ssh$ lsauthorized_keys2 id_dsa known_hostsconfig id_dsa.pub
我們需要尋找一對以 id_dsa 或 id_rsa 命名的檔案,其中一個帶有 .pub 副檔名。 .pub 檔案是你的公開金鑰,另一個則是私密金鑰。 如果找不到這樣的檔案(或者根本沒有 .ssh 目錄),你可以通過運行ssh-keygen 程式來建立它們。在 Linux/Mac 系統中,ssh-keygen 隨 SSH 軟體包提供;在 Windows 上,該程式包含於 MSysGit 軟體包中。
$ ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/home/schacon/.ssh/id_rsa):Created directory ‘/home/schacon/.ssh‘.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/schacon/.ssh/id_rsa.Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.The key fingerprint is:d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 [email protected]
首先 ssh-keygen 會確認密鑰的儲存位置(預設是 .ssh/id_rsa),然後它會要求你輸入兩次密鑰口令。如果你不想在使用密鑰時輸入口令,將其留空即可。
現在,進行了上述操作的使用者需要將各自的公開金鑰發送給任意一個 Git 伺服器管理員(假設伺服器正在使用基於公開金鑰的 SSH 驗證設定)。 他們所要做的就是複製各自的 .pub 檔案內容,並將其通過郵件發送。 公開金鑰看起來是這樣的:
$ cat ~/.ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSUGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XAt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/EnmZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbxNrRFi9wrf+M7Q== [email protected]
關於在多種作業系統中產生 SSH 金鑰的更深入教程,請參閱 GitHub 的 SSH 金鑰指南https://help.github.com/articles/generating-ssh-keys。
伺服器上的 Git - 產生 SSH 公開金鑰