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