4.3 生成 SSH 公鑰

2018-02-24 15:22 更新

生成 SSH 公鑰

如前所述,許多 Git 服務(wù)器都使用 SSH 公鑰進(jìn)行認(rèn)證。為了向 Git 服務(wù)器提供 SSH 公鑰,如果某系統(tǒng)用戶尚未擁有密鑰,必須事先為其生成一份。這個(gè)過程在所有操作系統(tǒng)上都是相似的。首先,你需要確認(rèn)自己是否已經(jīng)擁有密鑰。默認(rèn)情況下,用戶的 SSH 密鑰存儲(chǔ)在其 ~/.ssh 目錄下。進(jìn)入該目錄并列出其中內(nèi)容,你便可以快速確認(rèn)自己是否已擁有密鑰:

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

我們需要尋找一對(duì)以 id_dsaid_rsa 命名的文件,其中一個(gè)帶有 .pub 擴(kuò)展名。.pub 文件是你的公鑰,另一個(gè)則是私鑰。如果找不到這樣的文件(或者根本沒有 .ssh 目錄),你可以通過運(yùn)行 ssh-keygen 程序來創(chuàng)建它們。在 Linux/Mac 系統(tǒng)中,ssh-keygen 隨 SSH 軟件包提供;在 Windows 上,該程序包含于 MSysGit 軟件包中。

$ ssh-keygen
Generating 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 schacon@mylaptop.local

首先 ssh-keygen 會(huì)確認(rèn)密鑰的存儲(chǔ)位置(默認(rèn)是 .ssh/id_rsa),然后它會(huì)要求你輸入兩次密鑰口令。如果你不想在使用密鑰時(shí)輸入口令,將其留空即可。

現(xiàn)在,進(jìn)行了上述操作的用戶需要將各自的公鑰發(fā)送給任意一個(gè) Git 服務(wù)器管理員(假設(shè)服務(wù)器正在使用基于公鑰的 SSH 驗(yàn)證設(shè)置)。他們所要做的就是復(fù)制各自的 .pub 文件內(nèi)容,并將其通過郵件發(fā)送。公鑰看起來是這樣的:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

關(guān)于在多種操作系統(tǒng)中生成 SSH 密鑰的更深入教程,請(qǐng)參閱 GitHub 的 SSH 密鑰指南

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)