SSH登陆阿里云服务器出现Permission denied (publickey)错误解决方案

Posted WangC.W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于SSH登陆阿里云服务器出现Permission denied (publickey)错误解决方案的主要内容,如果未能解决你的问题,请参考以下文章

手机远程连接阿里云腾讯云服务器的方法

Xshell5配置ssh免密码登录-公钥与私钥登录linux服务器(xshell如何登陆上阿里云服务器)

Mac终端配置免密码登陆云服务器

阿里云ssh免密登陆突然无效

centos 7 搭建git服务器 ssh 连接时 Permission denied, please try again问题

使XShell登录阿里云服务器