SSH 密钥签名失败

情景: 使用 SSH 密钥验证身份时

报错:

sign_and_send_pubkey: signing failed: agent refused operation

环境: Debian 9.7 (Stretch)

解决方法:

1)确认问题

在 SSH 命令前添加“SSH_AUTH_SOCK=0”:

SSH_AUTH_SOCK=0 ssh <username>@<server>

如果可以正常登录,而显示变量 SSH_AUTH_SOCK 内容时输出:

echo $SSH_AUTH_SOCK
/run/user/1000/keyring/ssh

则我们就可以确定是由 Gnome Keyring 带的 SSH Agent 导致的密钥签名失败问题。Gnome Keyring SSH Agent 并不能总是正确处理所有格式的 SSH 密钥。但是它却试图处理所有的 SSH 密钥,从而出错。(典型的没有金刚钻,还要揽这瓷器活儿)

如果还是没法正常登录,说明是 ssh-agent 不存在或者存在但没有找到密钥。可以参考这里,几条命令就可以解决。

2)解决问题

之前提到,如果 ssh 命令前面添加 SSH_AUTH_SOCK=0 后可以正常登录,说明是 Gnome Keyring SSH Agent 在试图处理它可能并不能处理的 SSH 密钥编码方式。那么解决方法就可以有两种:禁用 Gnome Keyring SSH Agent 自启动,或用 ssh-keygen 重新生成、上传 Gnome Keyring SSH Agent 能够处理的编码方式所生成的公私钥对。

其中,第二种方法在这篇博文中提到过。这种方法的优点是不用更改本地系统设置,缺点是需要更新所有服务器的公钥,对于那些将公钥上传到多个服务(比如 GitHub,GitLab,DigitalOcean 等)的人来说需要做很多重复性操作,比较麻烦;

第一种方法会更改系统设置,但也只是最低限度的更改(仅禁用 Gnome Keyring 下的 SSH Agent 开机自启动),几乎不影响系统功能。因此,Gnome Keyring SSH Agent 完全可以由 OpenSSHssh-agent 替代。

具体方法如下:

  1. 打开搜索栏,搜索 Startup Applications 应用并运行(如果没有安装会提示安装);
  2. 在弹出的窗口中找到 SSH Key Agent GNOME Keyring: SSH Agent,关闭自启;
  3. 重启系统。

Written with StackEdit.

SSH 报错解决方法记录汇总的更多相关文章

  1. Play! 1.x Eclipse Debug调试报错解决方法记录

    使用Play eclipsify xxxx[项目路径],可以把play new xxxx[项目路径]创建的工程生成为Eclipse的项目 但是在Debug AS 调试的时候,会报以下错误 Error ...

  2. eclipse创建的maven项目,pom.xml文件报错解决方法

    [错误一:]maven 编译级别过低 [解决办法:] 使用 maven-compiler-plugin 将 maven 编译级别改为 jdk1.6 以上: <!-- java编译插件 --> ...

  3. MyEclipse Server view报错解决方法

    MyEclipse Server view报错解决方法 方法/步骤     启动MyEclipse,弹出一个框,报错. ---------------------------------------- ...

  4. Loadrunner参数化逗号报错解决方法

    Loadrunner参数化逗号报错解决方法     介绍Loadrunner参数化时,参数中包含有逗号时出错的解决方法. 在Loadrunner进行参数化时,参数中如果含有逗号,编辑保存后会报错: 此 ...

  5. Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法

    AS下如何生成自定义的.jks签名文件, 以及如何生成数字签名 链接:http://www.cnblogs.com/smyhvae/p/4456420.html 链接:http://blog.csdn ...

  6. iOS url带中文下载时 报错解决方法

    问题描述:下载文件时, 请求带中文的URL的资源时,比如:http://s237.sznews.com/pic/2010/11/23/e4fa5794926548ac953a8a525a23b6f2/ ...

  7. jquery jssdk分享报错解决方法

    jssdk分享报错解决方法 一般都是参数传错了

  8. django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法

    django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法 django.db ...

  9. create-react-app创建项目后,运行npm run eject报错解决方法

    运行npm run eject报错解决方法 主要问题是脚手架添加.gitgnore文件,但是却没有本地仓库,使用以下命令操作以下就可以了 git init git add . git commit - ...

随机推荐

  1. 【洛谷】【动态规划/背包】P1833 樱花

    [题目描述:] 爱与愁大神后院里种了n棵樱花树,每棵都有美学值Ci.爱与愁大神在每天上学前都会来赏花.爱与愁大神可是生物学霸,他懂得如何欣赏樱花:一种樱花树看一遍过,一种樱花树最多看Ai遍,一种樱花树 ...

  2. 用C#给程序加启动画面并只允许一个应用程序实例运行

    . 启动画面类: public class SplashForm : System.Windows.Forms.Form { private System.Windows.Forms.PictureB ...

  3. PAT乙级1019

    1019 数字黑洞 (20 分)   给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直 ...

  4. Netflix中的负载均衡策略

    Spring Cloud的负载均衡策略可以通过配置Ribbon搞定,也就是注入实现com.netflix.loadbalancer.IRule的类,当前包含的策略包括 1.RandomRule 随机策 ...

  5. DQL-联合查询

    一.含义union:合并.联合,将多次查询结果合并成一个结果二.语法查询语句1union [all]查询语句2union [all]... 三.意义1.将一条比较复杂的查询语句拆分成多条语句2.适用于 ...

  6. Mac开发中遇到的一些小问题解析

    通过mac开发的过程中,有一些小问题出现,列如下,后续会持续增加: 1. 命令行清空废纸篓(jar包太多,倾倒废纸篓太慢) sudo rm -rfv ~/.Trash /Volumes/*/.Tras ...

  7. Bootstrap02

    Bootstrap02_内容概述 一.排版样式  (下面示例*代表class) 1.段落突出 *=lead <p>山外有山,<span class="lead"& ...

  8. 【翻译】R 中的设计模式

    目录 R 中的设计模式 不动点算法 包装器模式 接口模式 柯里化(Currying) 闭包(Closures) 缓存模式 计数器模式 R 中的设计模式 本文翻译自 Design Patterns in ...

  9. windows 8 中 使用 httpclient

    基本技术点 windows 8 中 使用 httpclient 代替 windows phone 中的 httpwebclient , 使用方法 也有些不同 . 下面是windows 8种使用 htt ...

  10. 20155236范晨歌 Exp1PC平台逆向破解及Bof基础实践

    出现的问题及解决: 在下载execstack时,出现了下列签名无效的错误! 解决方案:发现是密钥过期了,将新的密钥填入apt-keyring 输入命令:apt-key adv --keyserver ...