1. 程式人生 > >SSH登陸阿裏雲服務器出現Permission denied (publickey)錯誤解決方案

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

ckey 是個 鑰匙串 col code gen fff font 重啟

操作環境:

  • 操作系統: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

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