如何配置Linux用戶的SSH密鑰登錄?authorized_keys設置方法

配置ssh密鑰登錄可提升linux服務器安全性。1. 本地執行ssh-keygen生成私鑰和公鑰;2. 使用ssh-copy-id或手動復制將公鑰添加到服務器的authorized_keys文件;3. 設置.ssh目錄權限為700、authorized_keys文件權限為600,并確保主目錄無其他用戶寫權限;4. 可選禁用密碼登錄,修改sshd_config并重啟ssh服務,確保已有密鑰登錄可用以避免被鎖。整個過程需注意權限設置,否則可能導致密鑰失效。

如何配置Linux用戶的SSH密鑰登錄?authorized_keys設置方法

配置SSH密鑰登錄是提升linux服務器安全性的常用做法。相比密碼登錄,使用密鑰對驗證更安全也更方便,尤其是在自動化腳本或頻繁連接的場景下。關鍵在于正確設置authorized_keys文件。

如何配置Linux用戶的SSH密鑰登錄?authorized_keys設置方法


1. 生成SSH密鑰對(本地操作)

在你常用的電腦上(比如Mac或Linux)執行以下命令生成一對密鑰:

如何配置Linux用戶的SSH密鑰登錄?authorized_keys設置方法

ssh-keygen -t rsa -b 4096
  • 會提示你選擇保存路徑,默認是~/.ssh/id_rsa,直接回車即可。
  • 接著可以設置一個密碼(passphrase),也可以不設,根據你的安全需求決定。

完成后會在.ssh目錄下生成兩個文件:

  • id_rsa:私鑰,一定要妥善保管,不能泄露。
  • id_rsa.pub:公鑰,要上傳到服務器。

2. 將公鑰上傳到服務器

最簡單的方法是用ssh-copy-id命令:

如何配置Linux用戶的SSH密鑰登錄?authorized_keys設置方法

ssh-copy-id user@server_ip
  • user是你要登錄的用戶名
  • server_ip是目標服務器IP地址

這個命令會自動將你的公鑰添加到服務器上的~/.ssh/authorized_keys文件中。

如果沒有這個命令,也可以手動復制粘貼:

cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3. 設置正確的權限(服務器端操作)

SSH非常“挑剔”權限設置,如果不對,密鑰可能不會生效。

你需要確保以下幾點:

  • .ssh目錄權限為700:

    chmod 700 ~/.ssh
  • authorized_keys文件權限為600:

    chmod 600 ~/.ssh/authorized_keys
  • 用戶主目錄不能對其他用戶有寫權限(常見但容易忽略):

    chmod go-w ~

如果你不確定哪里出問題,可以用ssh -v加詳細輸出查看原因:

ssh -v user@server_ip

4. 禁用密碼登錄(可選但推薦)

確認密鑰登錄正常后,建議關閉密碼登錄以提高安全性。

編輯SSH配置文件(一般在/etc/ssh/sshd_config):

sudo nano /etc/ssh/sshd_config

修改以下選項:

PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

然后重啟SSH服務:

sudo systemctl restart sshd

?? 注意:修改前請確保你至少有一個可用的密鑰登錄方式,否則可能被鎖在外面。


基本上就這些。只要注意權限和路徑,整個過程其實不復雜,但很多新手容易在權限或目錄權限上踩坑。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享