如何使用ssh-keygen產生key ssh-keygen - 產生、管理和轉換認證密鑰通常使用:[b]ssh-keygen -i -f 公密匙名>> authorized_keys[/b] 文法詳細介紹[code]ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment] [-foutput_keyfile]ssh-keygen -p[-P old_passphrase] [-N new_passphrase] [-f keyfile]ssh-keygen -i[-f input_keyfile]ssh-keygen -e[-f input_keyfile]ssh-keygen -y[-f input_keyfile]ssh-keygen -c[-P passphrase] [-C comment] [-f keyfile]ssh-keygen -l[-f input_keyfile]ssh-keygen -B[-f input_keyfile]ssh-keygen -Dreaderssh-keygen -Fhostname [-f known_hosts_file]ssh-keygen -H[-f known_hosts_file]ssh-keygen -Rhostname [-f known_hosts_file]ssh-keygen -Ureader [-f input_keyfile]ssh-keygen -rhostname [-f input_keyfile] [-g]ssh-keygen -Goutput_file [-v] [-b bits] [-M memory] [-S start_point]ssh-keygen -Toutput_file -f input_file [-v] [-a num_trials] [-W generator][/code] 描述ssh-keygen 用於為 ssh(1)產生、管理和轉換認證密鑰,包括 RSA 和 DSA 兩種密鑰。密鑰類型可以用 -t 選項指定。如果沒有指定則預設產生用於SSH-2的RSA密鑰。ssh-keygen 還可以用來產生 Diffie-Hellman group exchange (DH-GEX) 中使用的素數模數。參見模數和產生小節。一般說來,如果使用者希望使用RSA或DSA認證,那麼至少應該運行一次這個程式,在~/.ssh/identity, ~/.ssh/id_dsa 或 ~/.ssh/id_rsa 檔案中建立認證所需的密鑰。另外,系統管理員還可以用它產生主機密鑰。通常,這個程式產生一個金鑰組,並要求指定一個檔案存放私密金鑰,同時將公開金鑰存放在附加了".pub"尾碼的同名檔案中。程式同時要求輸入一個密語字串(passphrase),空表示沒有密語(主機密鑰的密語必須為空白)。密語和口令(password)非常相似,但是密語可以是一句話,裡面有單詞、標點符號、數字、空格或任何你想要的字元。好的密語要30個以上的字元,難以猜出,由大小寫字母、數字、非字母混合組成。密語可以用 -p 選項修改。丟失的密語不可恢複。如果丟失或忘記了密語,使用者必須產生新的密鑰,然後把相應的公開金鑰分發到其他機器上去。RSA1的密鑰檔案中有一個"注釋"欄位,可以方便使用者標識這個密鑰,指出密鑰的用途或其他有用的資訊。建立密鑰的時候,注釋域初始化為"[email=user@host]user@host[/email]",以後可以用 -c 選項修改。密鑰產生後,下面的命令描述了怎樣處置和啟用金鑰。可用的選項有:-a trials在使用 -T 對 DH-GEX 候選素數進行安全性篩選時需要執行的基本測試數量。-B 顯示指定的公開金鑰/私密金鑰檔案的 bubblebabble 摘要。-b bits指定密鑰長度。對於RSA密鑰,最小要求768位,預設是2048位。DSA密鑰必須恰好是1024位(FIPS186-2 標準的要求)。-C comment提供一個新注釋-c 要求修改私密金鑰和公開金鑰檔案中的注釋。本選項只支援 RSA1 密鑰。程式將提示輸入私密金鑰檔案名稱、密語(如果存在)、新注釋。-D reader下載儲存在智慧卡 reader 裡的 RSA 公開金鑰。-e 讀取OpenSSH的私密金鑰或公開金鑰檔案,並以 RFC 4716 SSH 公開金鑰檔案格式在 stdout 上顯示出來。該選項能夠為多種商業版本的 SSH 輸出密鑰。-F hostname在 known_hosts檔案中搜尋指定的hostname ,並列出所有的匹配項。這個選項主要用於尋找散列過的主機名稱/ip地址,還可以和 -H 選項聯用列印找到的公開金鑰的散列值。-f filename指定密鑰檔案名稱。-G output_file為 DH-GEX產生候選素數。這些素數必須在使用之前使用 -T 選項進行安全性篩選。-g 在使用 -r 列印指紋資源記錄的時候使用通用的 DNS 格式。-H 對 known_hosts 檔案進行散列計算。這將把檔案中的所有主機名稱/ip地址替換為相應的散列值。原來檔案的內容將會添加一個".old"尾碼後儲存。這些散列值只能被 ssh 和 sshd 使用。這個選項不會修改已經經過散列的主機名稱/ip地址,因此可以在部分公開金鑰已經散列過的檔案上安全使用。-i 讀取未加密的SSH-2相容的私密金鑰/公開金鑰檔案,然後在 stdout 顯示OpenSSH相容的私密金鑰/公開金鑰。該選項主要用於從多種商業版本的SSH中匯入密鑰。-l 顯示公開金鑰檔案的指紋資料。它也支援 RSA1 的私密金鑰。對於RSA和DSA密鑰,將會尋找對應的公開金鑰檔案,然後顯示其指紋資料。-M memory指定在產生 DH-GEXS候選素數的時候最大記憶體用量(MB)。-Nnew_passphrase提供一個新的密語。-P passphrase提供(舊)密語。-p 要求改變某私密金鑰檔案的密語而不重建私密金鑰。程式將提示輸入私密金鑰檔案名稱、原來的密語、以及兩次輸入新密語。-q 安靜模式。用於在 /etc/rc 中建立新密鑰的時候。-R hostname從known_hosts 檔案中刪除所有屬於 hostname 的密鑰。這個選項主要用於刪除經過散列的主機(參見 -H 選項)的密鑰。-r hostname列印名為hostname 的公開金鑰檔案的 SSHFP 指紋資源記錄。-S start指定在產生 DH-GEX候選模數時的起始點(16進位)。-T output_file測試Diffie-Hellman group exchange 候選素數(由 -G 選項產生)的安全性。-t type指定要建立的密鑰類型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2)"dsa"(SSH-2)-U reader把現存的RSA私密金鑰上傳到智慧卡 reader-v 詳細模式。ssh-keygen 將會輸出處理過程的詳細調試資訊。常用於調試模數的產生過程。重複使用多個 -v 選項將會增加資訊的詳細程度(最大3次)。-W generator指定在為 DH-GEX測試候選模數時想要使用的generator-y 讀取OpenSSH專有格式的公開金鑰檔案,並將OpenSSH公開金鑰顯示在 stdout 上。 Note:1.一般我們常用如下命令來產生ssh公匙和私匙。ssh-keygen -t dsa –C user.email –f ~/.ssh/user.email1> -t dsa 採用das加密方式的公匙/私匙對,初了das還有ras方式。2>-C user.email 對這個公匙/私匙對的一個注釋和說明,一般用個人郵件代替。3> -f 指定key file的檔案名稱和路徑。如果沒有特別說明,公匙/私匙對會存放在.ssh目錄下