SSH登陸阿里雲服務器出現Permission denied (publickey)錯誤解決方案


操作環境:

  • 操作系統:Mac10.11.5
  • 阿里雲服務器:Ubuntu16.04
  • 遠程連接:SSH

注:首先我們已假設你已經自己生成了SSH秘鑰,並已經配置到阿里雲、綁定了自己的雲服務器。

但是后來發現原本好使的SSH再次登陸服務器時卻提示:Permission denied (publickey).的錯誤。解決辦法是用 ssh-add privateKey

ssh-add 永久將私鑰添加到 Keychain

 

      我們配置完SSH之后執行 ssh-add privateKey 將 SSH 的私鑰添加進去,但是發現了一個問題就是每次重啟電腦后都需要重新 ssh-add,顯然每次重啟后都需要重新添加讓我等程序員肯定受不了,解決辦法就是在添加 ssh 私鑰的時候使用如下命令: ssh-add -K privateKey,即可一勞永逸將私鑰添加進 Mac 本身的鑰匙串中,即 Keychain。下面簡單解釋下原理。

 

首先得了解一件事:ssh-add 這個命令不是用來永久性的記住你所使用的私鑰的。實際上,它的作用只是把你指定的私鑰添加到 ssh-agent 所管理的一個 session 當中。而 ssh-agent 是一個用於存儲私鑰的臨時性的 session 服務,也就是說當你重啟之后,ssh-agent 服務也就重置了,session 會話也就失效了。

 

既然 ssh-agent 是個臨時的,那么對於 Mac 來說,哪里可以永久存儲的,顯然就是 Keychain 了,在執行 ssh-add -K privateKey 后可以打開偏好設置中的 Keychain來觀察一下前后的變化,是不是多出了 SSH 的條目,見下圖。


備注:Mac10.12版本的無效,看這里:https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM