一、生成SSH密鑰
SSH免密碼登錄需要使用公鑰和私鑰進行身份驗證,因此首先需要生成SSH密鑰。
在Linux或macOS系統中,使用命令行進入終端,輸入以下命令:
ssh-keygen -t rsa
根據提示輸入文件名和密碼(如果不需要密碼則直接回車),密鑰文件默認會生成在用戶目錄下的.ssh文件夾中。
二、將公鑰添加到目標伺服器
生成SSH密鑰後,需要將公鑰添加到目標伺服器上,以便身份驗證。
在本地終端中執行以下命令,將公鑰添加到目標伺服器中:
ssh-copy-id username@remote_host
其中,username是目標伺服器的用戶名,remote_host是目標伺服器的IP地址或主機名。執行該命令後,會提示輸入目標伺服器的密碼。
三、配置SSH配置文件
為了方便使用SSH免密碼登錄,可以在本地主機上配置SSH配置文件,使其自動讀取密鑰。
在本地主機中找到.ssh文件夾,如果不存在就自行新建,編輯或創建config文件,添加以下內容:
Host remote_host
HostName remote_host
User username
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
其中,remote_host和username分別為目標伺服器的IP地址或主機名和用戶名,IdentityFile指定了私鑰文件的位置。如果私鑰文件名不是id_rsa,則需要將該文件名替換成實際的密鑰文件名。
四、測試SSH免密碼登錄
完成上述步驟後,使用SSH命令測試是否能夠免密碼登錄到目標伺服器上。
在本地終端中輸入以下命令:
ssh username@remote_host
如果一切正常,會直接登錄到目標伺服器上,無需輸入密碼。
五、禁用密碼登錄(可選)
為了加強伺服器的安全性,可以禁用密碼登錄,只允許使用SSH免密碼登錄。
在目標伺服器上,找到ssh配置文件,一般位於/etc/ssh/sshd_config,編輯該文件,將以下兩行的注釋去掉:
PasswordAuthentication no
ChallengeResponseAuthentication no
然後重啟ssh服務,輸入以下命令:
sudo service sshd restart
重啟後,只能使用SSH免密碼登錄到該伺服器上了。
原創文章,作者:HQLW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137690.html