SSH密鑰認證是一種更安全的認證方式,相比于密碼認證,它使用一對公鑰和私鑰進行身份驗證。以下是在CentOS系統上設置SSH密鑰認證的步驟:
首先,在你的本地機器(客戶端)上生成SSH密鑰對。打開終端并運行以下命令:
ssh-keygen -t rsa -b 4096
-t rsa
指定生成RSA類型的密鑰。-b 4096
指定密鑰長度為4096位。按照提示操作,你可以選擇密鑰的保存位置和設置密碼短語(passphrase)。通常情況下,你可以直接按回車鍵使用默認位置和空密碼短語。
使用ssh-copy-id
命令將公鑰復制到CentOS服務器。這個命令會要求你輸入服務器的用戶密碼。
ssh-copy-id user@server_ip
將user
替換為你的服務器用戶名,server_ip
替換為你的服務器IP地址。
如果ssh-copy-id
命令不可用,你可以手動復制公鑰。首先,找到生成的公鑰文件(通常是~/.ssh/id_rsa.pub
),然后將其內容追加到服務器上的~/.ssh/authorized_keys
文件中:
cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
確保服務器的SSH配置允許密鑰認證。編輯服務器上的/etc/ssh/sshd_config
文件:
sudo vi /etc/ssh/sshd_config
找到以下行并進行相應的修改:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
確保這些行沒有被注釋掉(即沒有以#
開頭)。
保存并退出編輯器,然后重啟SSH服務以應用更改:
sudo systemctl restart sshd
現在,你應該能夠使用SSH密鑰認證登錄到服務器了。嘗試從客戶端連接到服務器:
ssh user@server_ip
如果一切設置正確,你應該能夠無需輸入密碼即可登錄。
ssh -p port user@server_ip
。~/.ssh/authorized_keys
文件,確保沒有未經授權的公鑰。通過以上步驟,你應該能夠在CentOS系統上成功設置SSH密鑰認證。