SSH-Keygen詳解

一、生成SSH密鑰對

SSH-Keygen是一個基於密鑰對的安全連接工具,而密鑰對就是由公鑰和私鑰組成。以下是使用SSH-Keygen生成密鑰對的步驟:

$ ssh-keygen

在提示符下輸入上述命令並按回車鍵,會出現如下畫面:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

默認情況下,SSH-Keygen會將密鑰對存儲在默認路徑 /root/.ssh/id_rsa 中。如果需要更改默認路徑,直接輸入新路徑即可。

接下來程序會要求輸入passphrase,建議使用隨機生成的強密碼。當然,如果不需要設置passphrase,則可以直接按“Enter”跳過此步驟。如下所示:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

成功設置好密鑰對後,會在終端上輸出類似以下的信息:

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
The key's randomart image is:
+---[RSA 2048]----+
|            ...oo|
|           . oo  |
|            .o.. |
|             . o |
|        S .   + .|
|   o   . o . E.  |
|  . o .  o o .   |
|   . o   o. .o   |
|    o..o..  .    |
+-----END RSA KEY-+

二、安全設置

一旦生成密鑰對,下一步便是安全地設置文件權限。根據安全原則,應該只允許密鑰擁有者有讀、寫權限。

執行以下命令,即可設置文件權限:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub

三、使用SSH密鑰對

生成SSH密鑰對後,用戶需要將公鑰文件傳輸到服務器端,以便將公鑰文件添加到授權文件中。具體操作如下:

1、使用以下命令查看公鑰:

$ cat ~/.ssh/id_rsa.pub

將公鑰文件的內容複製到終端,然後保存。而後,將該公鑰文件內容複製到服務器的 ~/.ssh/authorized_keys 文件中。

2、新開終端,在終端中輸入如下命令,鏈接到服務器:

$ ssh user@host

注意: 在上述命令中,user是服務器登錄名,host是目標服務器的IP地址或域名。

如果這是第一次連接服務器,會看到類似於以下的內容:

The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 3f:1b:f4:bd:47:xx:xx:xx:xx:xx:xx:xx:f2:4f:b3:c0.
Are you sure you want to continue connecting (yes/no)?

這時輸入“yes”並按回車鍵。

之後會提示輸入密碼,如需跳過密碼輸入可在步驟1中設置passphrase,或在此處直接按回車鍵。

如果SSH-Keygen生成的公鑰文件已添加到授權文件中,連接會順利完成,不會再次要求輸入密碼。

四、使用不同的算法來生成密鑰對

以 Edward Curve 為例,這種加密方式能提高安全性:

$ ssh-keygen -t ed25519

提示符將會要求設置文件存儲路徑,還要求設置加密密碼等信息。

五、SSH-Keygen常見問題排查

如果ssh-keygen命令無法工作,或者拋出“fatal error”或“command not found”類似的錯誤信息,用戶可以嘗試以下排查方法。

1、檢查SSH-Keygen是否正在運行

如果一個SSH-Keygen進程正在運行,再次運行可能會引起衝突。通過運行以下命令,用戶能夠確認進程是否正在執行。

$ ps aux | grep ssh-keygen

2、確認SSH-Keygen是否安裝

如果SSH-Keygen未安裝,則用戶需要先安裝OpenSSH Client和Server。可以執行以下命令,檢查OpenSSH Server包是否已安裝:

$ dpkg-query -W openssh-server

3、確認錯誤消息是否還包含其他信息

如果錯誤消息僅提到了“ssh-keygen”,因此它不具有足夠的信息來確切地解決問題。將終端窗口中的代碼和錯誤消息複製並進行搜索,並查找解決方案。

4、確認您是否有適當的許可權

如果用戶沒有訪問/tmp或/ var / log目錄以及SSH-Keygen命令的其他必備文件的足夠權限,則可能無法運行。

六、總結

通過使用SSH-Keygen生成密鑰對,可以建立基於密鑰的安全連接,提高遠程登陸的安全性。用戶應該合理設置密鑰的存儲路徑、加密密碼等關鍵因素,同時進行良好的安全設置和SSH-Keygen常見問題排查,以提高安全性並避免可能的錯誤。

原創文章,作者:CBZSZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/333732.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CBZSZ的頭像CBZSZ
上一篇 2025-02-01 13:34
下一篇 2025-02-01 13:34

相關推薦

  • Python SSH 遠程執行命令

    Python SSH 遠程執行命令是指在一個服務器上執行遠程另一個服務器上命令。如果你需要在本地機器上執行命令,或者在遠程機器上執行本地命令,你都可以使用 SSH。在 Python…

    編程 2025-04-29
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • CentOS 開啟 SSH

    一、安裝 SSH SSH 是 Secure Shell 的縮寫,是一種安全協議。在 CentOS 系統中,可以通過以下命令安裝 SSH: sudo yum install open…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25

發表回復

登錄後才能評論