1. 程式人生 > >ssh-keygen 引數說明

ssh-keygen 引數說明

     ssh-keygen - 生成、管理和轉換認證金鑰
     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 -D reader
     ssh-keygen -F hostname [-f known_hosts_file]
     ssh-keygen -H
 [-f known_hosts_file]
     ssh-keygen -R hostname [-f known_hosts_file]
     ssh-keygen -U reader [-f input_keyfile]
     ssh-keygen -r hostname [-f input_keyfile] [-g]
     ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
     ssh-keygen -T output_file -f input_file [-v] [-a num_trials] [-W generator]
     ssh-keygen 用於為 
生成、管理和轉換認證金鑰,包括 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 protected]",以後可以用 -c 選項修改。
     金鑰產生後,下面的命令描述了怎樣處置和啟用金鑰。可用的選項有:
     -a trials
             在使用 -T 對 DH-GEX 候選素數進行安全篩選時需要執行的基本測試數量。
     -B      顯示指定的公鑰/私鑰檔案的 bubblebabble 摘要。
     -b bits
             指定金鑰長度。對於RSA金鑰,最小要求768位,預設是2048位。DSA金鑰必須恰好是1024位(FIPS 186-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)。
     -N new_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 上。
     ssh-keygen 可以生成用於 Diffie-Hellman Group Exchange (DH-GEX) 協議的 groups 。
     生成過程分為兩步:
     首先,使用一個快速且消耗記憶體較多的方法生成一些候選素數。然後,對這些素數進行適應性測試(消耗CPU較多)。
     可以使用 -G 選項生成候選素數,同時使用 -b 選項制定其位數。例如:
           # ssh-keygen -G moduli-2048.candidates -b 2048
     預設將從指定位數範圍內的一個隨機點開始搜尋素數,不過可以使用 -S 選項來指定這個隨機點(16進位制)。
     生成一組候選數之後,接下來就需要使用 -T 選項進行適應性測試。
     此時 ssh-keygen 將會從 stdin 讀取候選素數(或者通過 -f 選項讀取一個檔案),例如:
           # ssh-keygen -T moduli-2048 -f moduli-2048.candidates
     每個候選素數預設都要通過 100 個基本測試(可以通過 -a 選項修改)。
     DH generator 的值會自動選擇,但是你也可以通過 -W 選項強制指定。有效的值可以是: 2, 3, 5
     經過篩選之後的 DH groups 就可以存放到 /etc/ssh/moduli 裡面了。
     很重要的一點是這個檔案必須包括不同長度範圍的模數,而且通訊雙方雙方共享相同的模數。
     ~/.ssh/identity
             該使用者預設的 RSA1 身份認證私鑰(SSH-1)。此檔案的許可權應當至少限制為"600"。
             生成金鑰的時候可以指定採用密語來加密該私鑰(3DES)。
             
將在登入的時候讀取這個檔案。
     ~/.ssh/identity.pub
             該使用者預設的 RSA1 身份認證公鑰(SSH-1)。此檔案無需保密。
             此檔案的內容應該新增到所有 RSA1 目標主機的 ~/.ssh/authorized_keys 檔案中。
     ~/.ssh/id_dsa
             該使用者預設的 DSA 身份認證私鑰(SSH-2)。此檔案的許可權應當至少限制為"600"。
             生成金鑰的時候可以指定採用密語來加密該私鑰(3DES)。
             
將在登入的時候讀取這個檔案。
     ~/.ssh/id_dsa.pub
             該使用者預設的 DSA 身份認證公鑰(SSH-2)。此檔案無需保密。
             此檔案的內容應該新增到所有 DSA 目標主機的 ~/.ssh/authorized_keys 檔案中。
     ~/.ssh/id_rsa
             該使用者預設的 RSA 身份認證私鑰(SSH-2)。此檔案的許可權應當至少限制為"600"。
             生成金鑰的時候可以指定採用密語來加密該私鑰(3DES)。
             

將在登入的時候讀取這個檔案。
     ~/.ssh/id_rsa.pub
             該使用者預設的 RSA 身份認證公鑰(SSH-2)。此檔案無需保密。
             此檔案的內容應該新增到所有 RSA 目標主機的 ~/.ssh/authorized_keys 檔案中。
     /etc/ssh/moduli
             包含用於 DH-GEX 的 Diffie-Hellman groups 。檔案的格式在