
我想要 ssh、scp、git fetch 等,無需密碼。我看到了先前的問題,以及有關此問題的關閉問題,但建議似乎是使用 ssh 金鑰。但是,在設定 ssh 金鑰後,仍然要求我輸入密碼(不是要求我的私鑰密碼;而是要求我的登入密碼)。我應該如何設定它,以便它只使用我的私鑰進行身份驗證?
答案1
~/.ssh
在用戶端和伺服器上適當設定 (0700) 及其內容 (0600) 的權限。
答案2
ssh 對文件的所有權很偏執authorized_keys
。如果 root 之外的其他人可以更改該文件,則它不會使用它。它會檢查整個目錄樹,因此如果有人可以執行諸如替換您的主目錄或 .ssh 目錄之類的操作,它就不會使用它。檢查從authorized_keys
一直到 的權限/
。如果沒有設定黏性位,這些都不應該是組或世界可寫的。 (我的 /home 目錄的權限是drwxrwxr-t
。所有權必須是 root 或使用者。authorized_keys 檔案的權限不應允許群組或世界存取。
使用ssh -v
而不是進行測試ssh
應該會有所幫助。使用ssh-copy-id
將密鑰複製到遠端系統是一個好主意。