在 Linux 伺服器上使用 PuTTY 配置_無密碼 SSH 金鑰認證_
SSH(安全外殼)是一種流行的協議,用於透過網路安全地連線到遠端伺服器。當您使用 SSH 連線到伺服器時,通常需要提供使用者名稱和密碼來驗證您的身份。但是,如果您需要經常連線到多個伺服器,此過程可能會很繁瑣。幸運的是,有一個解決方案:無密碼 SSH 金鑰認證。
在本文中,我們將引導您完成在 Linux 伺服器上使用 PuTTY(Windows 的流行 SSH 客戶端)設定無密碼 SSH 金鑰認證的過程。透過此設定,您可以快速安全地連線到您的伺服器,而無需每次都輸入密碼。
先決條件
在開始之前,請確保您擁有以下內容:
您要使用 SSH 連線的 Linux 伺服器。
在您的 Windows 計算機上安裝了 PuTTY。您可以從官方網站下載 PuTTY。
Linux 命令的基本知識以及如何使用命令列。
為什麼要使用無密碼 SSH 金鑰認證?
使用無密碼 SSH 金鑰認證有幾個好處:
提高安全性 − SSH 金鑰提供了一種比密碼更安全的身份驗證方式,因為它們更難以猜測或破解。
方便 − 使用 SSH 金鑰,您無需每次連線到伺服器時都記住或輸入密碼。
自動化 − SSH 金鑰可用於自動化遠端伺服器上的任務,例如執行指令碼或執行命令。
使用 PuTTYgen 生成 SSH 金鑰
要使用無密碼 SSH 金鑰認證,您需要生成一對公鑰/私鑰。PuTTYgen 是一個用於使用 PuTTY 生成和管理 SSH 金鑰的工具。
請按照以下步驟使用 PuTTYgen 生成 SSH 金鑰:
從官方網站下載並安裝 PuTTY。
透過在“開始”選單中搜索來開啟 PuTTYgen。
單擊“生成”按鈕以建立新的金鑰對。將滑鼠移動到空白區域以生成金鑰的隨機資料。
為您的私鑰設定密碼短語。此密碼短語將需要用於私鑰,因此請務必記住它。
單擊“儲存私鑰”按鈕以儲存您的私鑰。選擇一個安全的位置儲存檔案。
將“用於貼上到 OpenSSH authorized_keys 檔案中的公鑰”欄位的內容複製到剪貼簿。這是您的公鑰。
將公鑰新增到 Linux 伺服器上的 authorized_keys 檔案
現在您已經生成了 SSH 金鑰對,您需要將公鑰新增到要連線到的 Linux 伺服器上的 authorized_keys 檔案。請按照以下步驟操作:
使用您的密碼登入到 Linux 伺服器。
如果您的主目錄中尚不存在 .ssh 目錄,請建立它。執行以下命令:mkdir -p ~/.ssh。
在文字編輯器中開啟 authorized_keys 檔案。執行以下命令:nano ~/.ssh/authorized_keys。
將您之前複製的公鑰內容貼上到 authorized_keys 檔案中。
透過按 Ctrl-X、然後 Y、然後 Enter 來儲存並關閉檔案。
透過執行以下命令設定 .ssh 目錄和 authorized_keys 檔案的許可權:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
在 Linux 伺服器上設定 .ssh 目錄和 authorized_keys 檔案的許可權
為了使 SSH 正確工作,Linux 伺服器上的 .ssh 目錄和 authorized_keys 檔案需要具有正確的許可權。請按照以下步驟正確設定許可權:
使用您的密碼登入到 Linux 伺服器。
透過執行以下命令導航到您的主目錄:cd ~。
透過執行以下命令設定 .ssh 目錄的許可權:chmod 700 ~/.ssh。
透過執行以下命令設定 authorized_keys 檔案的許可權:chmod 600 ~/.ssh/authorized_keys。
使用 PuTTY 的 SSH 代理轉發
SSH 代理轉發是一個有用的功能,允許您在遠端伺服器上使用 SSH 金鑰。如果您需要使用相同的金鑰連線到多臺伺服器,或者如果您需要執行多個 SSH 跳躍以到達遠端伺服器,這將非常有用。
要啟用 SSH 代理轉發,您需要執行以下步驟:
檢查您的本地計算機上是否啟用了 SSH 代理轉發:
在您的本地計算機上執行以下命令以檢查 SSH 代理轉發是否已啟用:
$ echo "$SSH_AUTH_SOCK"
如果輸出是套接字檔案的路徑(例如 /tmp/ssh-XXXXXXXX/agent.XXXXXX),則 SSH 代理轉發已啟用。
在遠端伺服器上啟用 SSH 代理轉發:
您需要將以下行新增到遠端伺服器上的 SSH 配置檔案 (/etc/ssh/sshd_config) 中:
AllowAgentForwarding yes
進行此更改後,您需要重新啟動遠端伺服器上的 SSH 服務:
$ sudo systemctl restart sshd
使用已啟用 SSH 代理轉發的 SSH 連線到遠端伺服器:
要使用已啟用 SSH 代理轉發的 SSH 連線到遠端伺服器,請在 ssh 命令中使用 -A 選項:
$ ssh -A remote_server
連線到遠端伺服器後,您可以使用 SSH 金鑰連線到識別該金鑰的其他伺服器。
例如,假設您需要連線到識別 SSH 金鑰的第二個遠端伺服器 (second_remote_server)。您可以使用以下命令從遠端伺服器 (remote_server) 連線到它:
配置 PuTTY 以使用私鑰
最後一步是配置 PuTTY 在連線到 Linux 伺服器時使用您的私鑰。以下是如何操作:
開啟 PuTTY,然後轉到“會話”類別。
在“主機名(或 IP 地址)”欄位中輸入 Linux 伺服器的主機名或 IP 地址。
在“連線”類別下,展開“SSH”子類別,然後單擊“身份驗證”。
單擊“身份驗證金鑰檔案”欄位旁邊的“瀏覽”按鈕,然後選擇您在步驟 1 中儲存的私鑰檔案。
單擊“開啟”按鈕以啟動 SSH 會話。
您現在應該能夠連線到 Linux 伺服器,而無需輸入密碼。PuTTY 將自動使用私鑰進行身份驗證。
故障排除
如果您無法使用私鑰連線到 Linux 伺服器,請嘗試以下故障排除步驟:
確保公鑰已正確新增到 Linux 伺服器上的 authorized_keys 檔案中。
確保 Linux 伺服器上 .ssh 目錄和 authorized_keys 檔案的許可權已正確設定。
確保私鑰檔案已儲存為正確的格式(PuTTY 預設使用 .ppk 格式)。
確保在 PuTTY 中正確選擇了私鑰檔案。
結論
無密碼 SSH 金鑰認證是一種方便的方式,可以快速安全地連線到 Linux 伺服器。透過按照本文中概述的步驟,您現在應該能夠使用 PuTTY 連線到您的 Linux 伺服器,而無需輸入密碼。如果您遇到任何問題,請務必仔細檢查您的設定和許可權。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP