① 關掉 ssh 的密碼登陸
0.檢查是否已經安裝 ssh-keygen 了
如果出現上面的錯誤需要從 1.安裝 ssh-key 開始;否則從 2.創建授權文件 開始。
1.安裝 ssh-key
安裝 RSA 的 key,一路 ENTER 就行了。
2.創建授權文件
將本地的 id_rsa.pub 的內容寫入 authorized_keys , 注意:是本地的,不是伺服器的 。
3.免密碼登陸測試
理論上,直接就登陸上去了
1.修改配置文件
修改一下內容,一般都已經設置了,修改一下就好了, 不要添加哦 。
2.重啟 ssh 服務
OK,這樣就可以防止別人破解密碼了
關閉SSH傳統密碼登陸方式
② ssh localhost 配置免密登陸仍需要密碼的解決方法
最近在看spark的書籍,書中第一步搭建單機spark的時候,有一個操作是設置ssh無密碼的登陸了。萬萬沒想到,在這一步就卡住了。已經成功配置了免密登陸,但是ssh localhost還是需要輸入密碼。在阿里雲香港伺服器掛掉之後,網路了兩天才找到解決方法。特此記錄。
查看日誌是分析問題中很重要的一環,因為ssh中會出現各種不同的問題,每種問題的解決方法不一樣。
ssh -vvv localhost 報的錯誤信息
日誌顯示ssh跳過了dsa的認證方式,最後只能通過密碼認證的方式。
通過查詢資料發現,ssh 7.0之後就已經默認關閉了dsa認證方式。
於是修改ssh的配置文件ssh_config,在驗證方式中加入dsa
按照教程修改完配置文件後,ssh localhost任然需要輸入密碼,查看日誌如下。·
可以看出修改過後,ssh時已經提供了DSA秘鑰,但是好像校驗沒有通過,所以最後還是進入了輸入密碼驗證的環節。
通過查閱資料和自己推理,問題可能出在服務端校驗不通過,因為伺服器端也不支持dsa這種認證方式,那就試著修改一下伺服器端的配置文件。
ssh_config 和 sshd_config 分別是ssh客戶端和伺服器端的配置文件,ssh localhost就是一個本地客戶端向本地伺服器請求的過程。
修改sshd文件後,ssh localhost還是需要密碼。就在我差點自閉的時候,看到有帖子說要重啟一下ssh伺服器。
重啟完成後,ssh localhost免密登陸成功。長舒一口氣。
後來經過測試,修改ssh配置文件不用重啟服務,但是修改sshd配置文件,是要重啟才能生效的。
據說是因為dsa是不加密的,後面都改用rsa了,遇上同樣問題的小夥伴可以自己去查一下。
``