操作环境:

  • 操作系统: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)错误解决方案的更多相关文章

  1. ubuntu下ssh登陆阿里云服务器(ubuntu系统)中文乱码问题

    研究了几天终于解决了... 原文地址:  http://blog.csdn.net/a__yes/article/details/50489456 问题描述: 阿里云的服务器ubuntu系统,wind ...

  2. Ubuntu系统中登陆阿里云服务器的方法

    如果您购买了阿里云服务器,恰巧又在使用Ubuntu操作系统,那么恭喜你来对地方了,今天给大家分享一下如何在Ubuntu中登陆阿里云服务器: 主要使用两款软件:1.SecureCRT:2.SecureF ...

  3. SSH Key连接github提示Permission denied (publickey).错误

    root@debian64:/home/xiaoliuzi/.ssh/key_backup# ssh -T git@github.com The authenticity of host 'githu ...

  4. git push是报Permission denied (publickey)错误解决

    今天晕了半天了,搞了个git工程到github上,以为很简单,因为之前也弄过,那知道搞了大半天都搞不好,一直报如下错误 D:\javawork\ee-0.0.1-SNAPSHOT>git pus ...

  5. xshell5使用ssh连接阿里云服务器

    这里有两种方式,一种是在阿里云的控制台里面进行,另一种是在Xshell里面生成密钥. 阿里云控制台密钥对 点击右上方的创建密钥对 在阿里云里面生成较为简单,点击该页面右上方的“创建密钥对”,在另一个页 ...

  6. CenOS6.3 ssh 公钥认证报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

    转载自 http://laowafang.blog.51cto.com/251518/1364298 1.说明: ssh无密码用户远程登录,一直以来使用是debian操作系统,对用户目录权限要求没有关 ...

  7. ssh -T git@github.com出现Permission denied (publickey)

    参考自:http://blog.csdn.net/sunnypotter/article/details/18948053 参考自:http://stackoverflow.com/questions ...

  8. Git使用SSH提交代码到server出现 permission denied (publickey).

    在GitBush中向已经存在的Repository提交README.md改动. 命令例如以下: touch README.md git init git add README.md git commi ...

  9. navicat 链接阿里云服务器数据库报80070007 的错误

    navicat用ssh跳转登录mysql连接时报: 80070007: SSH Tunnel: Server does not support diffie-hellman-group1-sha1 f ...

随机推荐

  1. MAPISession(EventID9646-MS-ExchangeIS)

    查看邮箱登录信息: Get-LogonStatistics jsmith | Sort-Object clientipaddress | Format-Table Get-LogonStatistic ...

  2. openssl update--centos 6.5

    cd /usr/local/src #wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz #tar -zxvf openssl-1.0.1 ...

  3. Vue1.0常用语法

    摘要: var vm = new Vue({ el: "选择器", 挂载到页面的那个元素里,即确定vue的作用范围 外部可通过vm.$el访问,得到的是一个原生dom元素,可进行对 ...

  4. centos7 Docker Compose 的安装

    [root@localhost ~]# curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose ...

  5. Django--Web应用介绍/http协议

  6. Andrew Ng机器学习编程作业:K-means Clustering and Principal Component Analysis

    作业文件 machine-learning-ex7 1. K-means聚类 在这节练习中,我们将实现K-means聚类,并将其应用到图片压缩上.我们首先 从二维数据开始,获得一个直观的感受K-mea ...

  7. Java Concurrent happens-before

    happens-before relation on memory operations such as reads and writes of shared variables. The resul ...

  8. 006-基于hyperledger fabric1.4( 官方文档)编写第一个应用【外部nodejs调用】

    一.概述 官方原文地址 Writing Your First Application如果对fabric网络的基本运行机制不熟悉的话,请看这里. 注意:本教程是对fabric应用以及如何使用智能合约的简 ...

  9. Nothing is impossible

    题记: <你凭什么上北大>--贺舒婷.依稀记得这篇文章是我高二的时候在<青年文摘>读到的,从此她就成了我为之奋斗的动力.北大,也是我梦中的学府,虽然自己也曾刻苦过,但是还是没有 ...

  10. go——通道

    相比Erlang,go并未实现严格的并发安全.允许全局变量.指针.引用类型这些非安全内存共享操作,就需要开发人员自行维护数据一致和完整性.Go鼓励使用CSP通道,以通信来代替内存共享,实现并发安全.作 ...