ssh-keygen的學習總結

来源:https://www.cnblogs.com/kerrycode/archive/2018/08/02/9410928.html
-Advertisement-
Play Games

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目錄存在

 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 摘要:接下來的幾篇博客將要講到如何使用ado.net實現簡單的資料庫操作,包括增刪改等內容。首先會介紹基礎的資料庫操作,然後以一個實例來進行講解,這個實例會把一個數據表讀取到winform上,然後在winform上有一些按鈕和文本框,通過這些實現對資料庫里的內容的增刪改的操作。我個人比較菜,因此記錄... ...
  • 效果如下: 鄙人雖然開發WPF有些時間,但之前一直是一些簡單Template和Style改改之類的工作,並沒有深入研究過。此次為了完成工作,首先也是網上搜了半天,沒有找到合適的代碼直接拷貝(搜索能力待提高),乾脆就直接靜下心來琢磨琢磨。 一開始在界面上就放了Slider,撓撓頭,怎麼修改Templa ...
  • 為什麼文章要添加內鏈? 1.有利於讀者 我喜歡內鏈文章的最初動機是讓讀者在我的博客獲得更好的閱讀體驗,並獲得更多的價值。如果我的讀者訪問了我的一篇文章,發現不僅僅回答他需要的答案,還提供了更多相關內容的信息,讓他們能在更多的相關主題去擴展閱讀,他們遲早會喜歡並滿意我的博客。讓讀者滿意就是我們的目標, ...
  • 工作中長期需要用到通過HTTP調用API以及文件上傳下載,積累了不少經驗,現在將各種不同方式進行一個彙總。 首先是HttpWebRequest: 然後是HttpWebResponse: 上面兩個方法需要配合使用,皆為同步方式。當然也可以將上面兩個方法合併到一個方法中,可以參見接下來這個方法。 另外是 ...
  • 使用EF flument API 修改映射資料庫欄位的自增長 modelBuilder.Entity<Invoice>().Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 報錯Method n ...
  • [TOC] MEF 簡介 Managed Extensibility Framework 即 MEF 是用於創建輕量、可擴展應用程式的庫。 它讓應用程式開發人員得以發現和使用擴展且無需配置。 它還讓擴展開發人員得以輕鬆地封裝代碼並避免脆弱的緊密依賴性。 MEF 讓擴展不僅可在應用程式內重覆使用,還可 ...
  • 第一個原因 你沒有設置DataKeyNames屬性, 第二個原因 你的DataSource是NUll值 ...
  • 1、SNAT:源地址轉換 實現內網訪問外網,修改IP地址,使用POSTROUTING 命令:iptables -t nat -A POSTROUTING -s 192.168.1.10/24 -j SNAT --to-source 202.1.1.1 2、MASQUERADE:地址偽裝 適用於外網i ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...