Ssh

嘗試通過公鑰登錄時 ssh 詢問密碼

  • November 24, 2021

雖然這些行存在於我的伺服器的/etc/ssh/ssd_config

RSAAuthentication yes
PubkeyAuthentication yes

當嘗試通過顯式提供用於身份驗證的私鑰登錄到上述伺服器時,系統會提示我輸入密碼:

$ ssh -i ~/Desktop/some_id_rsa myusername@server-hostname
myusername@server-hostname's password: 

請更改權限authorized_keys

chmod 600 ~/.ssh/authorized_keys

我建議您刪除所有密鑰並備份您的authorized_keys並按照以下步驟操作:

1.在客戶端創建密鑰:

ssh-keygen -t rsa -b 4096

2.將公鑰複製到遠端設備

2.A. 使用ssh-copy-id(最佳選擇)

ssh-copy-id <user>@<remote-host>

2.B。使用 Secure Copy(推薦用於遠端 CentOS 主機)

  • **B.1。**首先,與遠端使用者建立 SSH 連接:
ssh <user>@<remote-host> -p <port>
  • **B.2。**接下來,創建~/.ssh目錄和authorized_keys文件:
mkdir -vp ~/.ssh
touch ~/.ssh/authorized_keys
  • **B.3。**使用chmod命令更改文件權限:
sudo chmod -v 700 ~/.ssh
sudo chmod -v 600 ~/.ssh/authorized_keys
  • **B.4。**通過鍵入以下命令將內容從id_rsa.pub(SSH 公鑰)複製到遠端伺服器上先前創建的文件:authorized_keys
scp ~/.ssh/id_rsa.pub -P <port> <user>@<remote-host> :~/.ssh/authorized_keys

筆記:

驗證是您的目錄$HOME.ssh並且該文件authorized_keys在客戶端具有正確的權限:

sudo chmod -v 700 ~
sudo chmod -v 700 ~/.ssh
sudo chmod -v 600 ~/.ssh/authorized_keys
  • chmod 700使文件可執行
  • chmod 600允許使用者讀取和寫入文件。

引用自:https://unix.stackexchange.com/questions/469034