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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...