無密碼 SSH - 不走運

無密碼 SSH - 不走運

需要從我的 Macbook(客戶端)到 Ubuntu 22.04 伺服器(伺服器)進行無密碼 SSH 存取。客戶端上的 ssh_config 和伺服器上的 sshd_config 保持原始狀態

在客戶端上執行的所有步驟:

  1. 建立密鑰(無密碼):

在此輸入影像描述

  1. 將此密鑰複製到伺服器:

在此輸入影像描述

  1. 檢查 ssh 連線:

在此輸入影像描述 連線成功,但仍要求輸入密碼(((

怎麼了?

解決方案:

新增IdentityFile ~/.ssh/id_macbook到客戶端的 /etc/ssh/ssh_config

答案1

您的 SSH 用戶端日誌顯示客戶端提供金鑰,但伺服器不提供接受它。這意味著下一步是查看您的伺服器的 sshd日誌 ( journalctl -S -1h),因為它們將包含金鑰被拒絕的原因 - 如果不是預設情況下,那麼肯定是在提高日誌等級之後(例如,新增LogLevel VERBOSEDEBUGto/etc/ssh/sshd_config將是一個好的開始)。

在這種情況下:

  1. 您產生的密鑰是不是同一個鑰匙您正在嘗試連線到。您產生並上傳的金鑰儲存在,但您從未告訴 SSH 客戶端在連接時使用該金鑰 - 正如您從客戶端日誌中看到的,它仍然使用預設值,這是一個完全不同的文件。~/.ssh/id_macbook~/.ssh/id_rsa

    sshd 日誌會說在authorized_keys 中找不到所提供的金鑰。

    連線時使用選項指定正確的金鑰-i <file>(或透過 ~/.ssh/config 中的 IdentityFile),或使用 將金鑰載入到 ssh-agent 中ssh-add <file>

  2. 您的authorized_keys文件設定為世界可寫(可能是由於umask伺服器上的奇怪設定?),這很可能導致 sshd 出於安全原因忽略該檔案。

    sshd 日誌會顯示權限「過於開放」。

    將其更改chmod為只能由所有者存取。

相關內容