ssh-keygen介紹 維基百科上關於ssh-keygen的介紹如下: ssh-keygen is a standard component of the Secure Shell (SSH) protocol suite found on Unix and Unix-like computer ... ...
ssh-keygen介紹
維基百科上關於ssh-keygen的介紹如下:
ssh-keygen is a standard component of the Secure Shell (SSH) protocol suite found on Unix and Unix-like computer systems used to establish secure shell sessions between remote computers over insecure networks, through the use of various cryptographic techniques. The ssh-keygen utility is used to generate, manage, and convert authentication keys.
ssh-keygen is able to generate a key using one of three different digital signature algorithms.
With the help of the ssh-keygen tool, a user can create passphrase keys for any of these key types (to provide for unattended operation, the passphrase can be left empty, at increased risk).
These keys differ from keys used by the related tool GNU Privacy Guard.
Oracle Solaris 11.2 Information Library (簡體中文)手冊中關於ssh-keygen的介紹如下:
ssh-keygen主要用於為ssh(遠程登錄程式)生成、管理和轉換驗證密鑰。ssh-keygen 可以創建供 SSH 協議版本 1 使用的 RSA 密鑰,以及供 SSH 協議版本 2 使用的 RSA 或 DSA 密鑰。生成的密鑰類型使用–t選項指定。ssh-keygen 還可以生成指紋或從指定為 PKCS#11 URI 的 X.509v3 證書轉換公鑰。
通常,希望將 SSH 與 RSA 或 DSA 驗證結合使用的每個用戶應運行一次此實用程式,以便在 $HOME/.ssh/identity、$HOME/.ssh/id_dsa 或 $HOME/.ssh/id_rsa 中創建驗證密鑰。系統管理員還可以使用此實用程式生成主機密鑰。
通常,此程式會生成密鑰並要求提供一個存儲私鑰的文件。公鑰存儲在附加了 ".pub" 擴展名的同名文件中。該程式還要求提供口令短語。口令短語可以為空,表示沒有口令短語(主機密鑰必須具有空口令短語),也可以為任意長度的字元串。好的口令短語長度在 10-30 個字元,不是簡單的句子或其他容易猜到的句子,由大寫字母、小寫字母、數字和非字母數字字元組合而成。(普通英文句子中的每個字只有 1-2 位的熵,提供的口令短語非常差。)如果設置口令短語,則長度必須至少為 4 個字元,後面可以使用 –p選項更改口令短語。
無法恢復丟失的口令短語。如果丟失或忘記口令短語,您必鬚生成一個新密鑰並將相應的公鑰複製到其他電腦。
對於 RSA,密鑰文件中還包含一個註釋欄位,該欄位只是為了便於用戶識別密鑰。comment 欄位可以說明密鑰的用途或提供任何有用信息。創建密鑰時,註釋將初始化為 "user@host",但可以使用 –c 選項進行更改。
密鑰生成後,可以使用下麵的詳細說明瞭解應將密鑰放在何處,以便激活密鑰。
當我們需要跨伺服器實現免密碼自動登陸,因此我們首先需要使用ssh-keygen生成登陸密鑰。生成登陸密鑰需要三個步驟,在本地機器創建密鑰,複製公鑰到遠程主機,將公鑰追加到遠程主機的authorized_keys
1: 生成鑰文件和私鑰文件
ssh-keygen它支持RSA和DSA兩種認證密鑰,下麵是的一些註意參數(可以使用 ssh-keygen /? 看看參數信息):
–b bits
指定要創建的密鑰的位數。最小位數為 512 位。通常,2048 位足以滿足安全需要。密鑰大小超過該值並不會提高安全性,反而會降低速度。預設值為 2048 位。
–B
顯示指定的私鑰或公鑰文件的 bubblebabble 摘要。
–c
請求更改私鑰和公鑰文件中的註釋。該程式會提示您提供包含私鑰的文件、口令短語(如果密鑰具有一個口令短語)以及新的註釋。
此選項僅適用於 rsa1 (SSHv1) 密鑰。
–C comment
提供新註釋。
–e
此選項讀取 OpenSSH 私鑰或公鑰文件並將密鑰以 "SECSH" 公鑰文件格式輸出到 stdout。此選項允許導出密鑰供其他一些 SSH 實現使用。
–f
指定密鑰文件的文件名。
–F
在known_hosts 文件中搜索指定的 hostname,列出找到的任何匹配項。此選項可用於查找散列格式的主機名或地址,還可以與 –H 選項一起使用,以散列格式輸出找到的密鑰。
–H
對 known_hosts 文件執行散列計算。此選項使用散列形式替換指定文件內的所有主機名和地址。原始內容將移動到尾碼為 .old 的文件中。這些散列值通常由 ssh 和 sshd 使用,即使文件內容被公開,這些散列值也並不會透露可識別的信息。此選項不會修改現有的散列主機名,因此可以放心地用於同時包含散列名稱和非散列名稱的文件。
–i
此選項以 SSH2 相容格式讀取未加密的私鑰(或公鑰)文件並將 OpenSSH 相容的私鑰(或公鑰)輸出到 stdout。ssh-keygen 還可讀取 “SECSH” 公鑰文件格式。此選項允許從其他一些 SSH 實現中導入密鑰。
–l
顯示指定的私鑰或公鑰文件的指紋。
–N new_passphrase
提供新口令短語。
–p
請求更改私鑰文件的口令短語,而不創建新私鑰。該程式會提示您提供包含私鑰的文件、舊口令短語,並兩次提示您輸入新口令短語。
–P passphrase
提供(舊)口令短語。
–q
退出 ssh-keygen。
–t type
指定用於生成密鑰的演算法,其中 type 是 rsa、dsa 和 rsa1 中的一種。rsa1 類型僅用於 SSHv1 協議。
–R hostname
從 known_hosts 文件中刪除屬於 hostname 的所有密鑰。此選項可用於刪除散列主機。請參見 –H。
–x
已過時。已被 –e 選項取代。
–X
已過時。已被 –i 選項取代。
–y
此選項讀取 OpenSSH 私鑰格式文件並將 OpenSSH 公鑰輸出到 stdout。
判斷.ssh目錄是否存在,不存在則創建目錄並賦予許可權。目錄存在即可跳過
.ssh目錄存在