要設置SSH無密碼登錄CentOS,你需要使用SSH密鑰對。以下是詳細步驟:
首先,在你的本地機器上生成一個SSH密鑰對。如果你已經有一個密鑰對,可以跳過這一步。
打開終端并運行以下命令:
ssh-keygen -t rsa -b 4096
這將生成一個4096位的RSA密鑰對。系統會提示你輸入文件保存位置和名稱,默認是~/.ssh/id_rsa
。你可以直接按回車鍵使用默認位置。
接下來,你需要將生成的公鑰復制到CentOS服務器的~/.ssh/authorized_keys
文件中。
你可以使用ssh-copy-id
命令來完成這一步:
ssh-copy-id user@remote_host
其中,user
是你在CentOS服務器上的用戶名,remote_host
是服務器的IP地址或域名。
如果ssh-copy-id
命令不可用,你可以手動復制公鑰。首先,登錄到你的CentOS服務器:
ssh user@remote_host
然后,在服務器上創建.ssh
目錄(如果它不存在)并設置正確的權限:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
接著,將你的公鑰內容追加到~/.ssh/authorized_keys
文件中。你可以使用以下命令將本地公鑰內容復制到剪貼板:
cat ~/.ssh/id_rsa.pub | pbcopy
然后在服務器上粘貼公鑰內容:
echo "" >> ~/.ssh/authorized_keys
pbicopy >> ~/.ssh/authorized_keys
最后,確保authorized_keys
文件的權限正確:
chmod 600 ~/.ssh/authorized_keys
現在,你應該能夠從本地機器無密碼登錄到CentOS服務器:
ssh user@remote_host
如果一切設置正確,你將直接登錄到服務器,而不需要輸入密碼。
為了進一步提高安全性,你可以配置SSH服務器以禁用密碼登錄,只允許使用密鑰認證。
編輯SSH服務器配置文件:
sudo vi /etc/ssh/sshd_config
找到以下行并進行修改:
PasswordAuthentication no
PubkeyAuthentication yes
保存并退出編輯器,然后重啟SSH服務:
sudo systemctl restart sshd
現在,SSH服務器將只允許使用密鑰認證,密碼登錄將被禁用。
通過以上步驟,你應該能夠成功設置SSH無密碼登錄CentOS。