在centos系統上設置ssh密鑰認證可以顯著提升安全性,避免每次登錄都需要輸入密碼。以下是詳細的配置步驟:
1. 生成ssh密鑰對
首先,在本地計算機上生成SSH密鑰對。如果你已經有現成的密鑰對,可以跳過這一步。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
執行該命令后,系統會詢問你保存密鑰文件的位置和名稱,默認路徑是~/.ssh/id_rsa。你可以直接按回車鍵接受默認設置。接著,系統會提示你輸入一個可選的密碼短語(passphrase),為了加強安全性,建議設置一個。
2. 將公鑰復制到遠程服務器
使用ssh-copy-id命令將公鑰復制到遠程服務器的~/.ssh/authorized_keys文件中。
ssh-copy-id user@remote_host
其中,user是遠程服務器上的用戶名,remote_host是遠程服務器的IP地址或域名。執行命令后,系統會要求你輸入遠程服務器用戶的密碼。
3. 配置SSH服務器
確保遠程服務器的SSH配置允許使用密鑰認證。編輯遠程服務器上的/etc/ssh/sshd_config文件:
sudo vi /etc/ssh/sshd_config
找到并確保以下配置項沒有被注釋掉(即沒有以#開頭):
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
4. 重啟SSH服務
修改配置文件后,需要重啟SSH服務以使更改生效。
sudo systemctl restart sshd
5. 測試SSH密鑰認證
現在,你應該可以使用SSH密鑰認證登錄到遠程服務器了。
ssh user@remote_host
如果一切配置正確,你應該能夠直接登錄,而無需輸入密碼。
6. 禁用密碼認證(可選)
為了進一步提升安全性,你可以選擇禁用密碼認證。編輯/etc/ssh/sshd_config文件,找到并修改以下配置項:
PasswordAuthentication no
然后重啟SSH服務:
sudo systemctl restart sshd
請注意,一旦禁用密碼認證,如果你忘記了私鑰的密碼短語,將無法登錄到服務器。
通過上述步驟,你可以在centos上成功設置SSH密鑰認證,提升系統的安全性。