ssh-keygenUnix和類Unix計算機系統上的安全外殼(SSH)協議套件的標準組件,用於通過使用各種加密技術在不安全的網絡上建立遠程計算機之間的安全shell會話。ssh-keygen實用程序用於生成,管理和轉換身份驗證密鑰。

這些密鑰與相關工具GnuPG使用的密鑰不同。

支持的密鑰格式

最初,SSH的協議版本1(現已棄用)僅支持RSA算法。截至2016年,RSA仍然被認為是強大的,但建議的密鑰長度隨着時間的推移而增加。

SSH協議版本2引入了對DSA算法的支持。由於DSA算法與美國國家安全局 (NSA)有關,因此愛德華·斯諾登全球監控披露對其安全性方面提出了質疑,特別是考慮到Bullrun解密計劃。

OpenSSH也支援新式ECDSAEd25519

ssh-keygen命令語法

ssh-keygen命令的語法如下:

 ssh-keygen [选项] 

ssh-keygen命令的一些重要選項如下:

ssh-keygen命令選項 描述
-b bits 指定要創建的密鑰中的位數。 最小位長度為768位,默認長度為2048位。
-C comment 提供新註釋。
-p 請求更改私鑰文件的密碼而非創建新私鑰。
-t 指定要創建的密鑰類型。
-o 使用新的OpenSSH格式。
-q 靜默的ssh-keygen。 在創建新密鑰時,/etc/rc文件會使用它。
-N 提供新的密碼。
-B 對於ssh-keygen2,以Bubble Babble格式顯示密鑰指紋
-l 顯示密鑰指紋

ssh-keygen實用程序使用的文件

ssh-keygen實用程序使用各種文件來存儲公鑰私鑰。ssh-keygen實用程序使用的文件如下:

  • $HOME/.ssh/identity: 使用SSH協議版本1時,$HOME/.ssh/identity文件包含RSA私鑰。
  • $HOME/.ssh/identity.pub: 當你使用SSH協議版本1時,$HOME/.ssh/identity.pub文件包含用於進行身份驗證的RSA公鑰。用戶應將其內容複製到用戶希望使用RSA身份驗證登錄的遠程系統的$HOME/.ssh/authorized_keys文件中。
  • $HOME/.ssh/id_dsa: $HOME/.ssh/id_dsa文件包含用戶的協議版本2 DSA身份驗證標識。
  • $HOME/.ssh/id_dsa.pub: 當您使用SSH協議版本2時,$HOME/.ssh/id_dsa.pub文件包含用於身份驗證的DSA公鑰。 用戶應將其內容複製到用戶希望使用DSA身份驗證登錄的遠程系統的$HOME/.ssh/authorized_keys文件中。
  • $HOME/.ssh/id_rsa: $HOME/.ssh/id_rsa文件包含用戶的協議版本2 RSA身份驗證標識。 除了用戶之外,任何人都不應該有讀取此文件的權限。
  • $HOME/.ssh/id_rsa.pub: $HOME/.ssh/id_rsa.pub文件包含用於身份驗證的協議版本2 RSA公鑰。 應在用戶希望使用公鑰認證登錄的所有計算機上將此文件的內容添加到$HOME/.ssh/authorized_keys。

外部連結