添加SSH 密钥时提示Invalid key format: illegal base64 data at input byte 221


#1

Gogs 版本:0.9.13.0318
系统类型及版本:2.6.32-573.18.1.el6.x86_64 CentOS release 6.7 (Final)
数据库:mysql Ver 14.14 Distrib 5.5.47, for Linux (x86_64) using readline 5.1
问题描述:
为了让nginx用户可以执行git pull同步拉取代码,我用如下命令生成了nginx的ssh-key:
sudo -u nginx ssh-keygen -t rsa,
然后在gogs的增加密钥里按照步骤增加密钥,页面提示如下错误:
很抱歉,我们无法验证您输入的 SSH 密钥:Invalid key format: illegal base64 data at input byte 221
最后我按照gogs的格式通过手动编辑vim /home/git/.ssh/authorized_keys认证文件,成功的将nginx用户添加进了可信用户。在网上搜索无果,特来求助。


#2

检查复制粘贴时有没有出现错误。


#3

我把之前生成的其它用户密钥与生成nginx用户的密钥拷贝到文本编辑器进行对比,位数都是相同的,而且我重新复制了好几遍,都存在相同的问题。所以基本上可以确定不是复制粘贴的问题。


#4

等等,你为什么用 nginx 生成 SSH key?


#5

我在服务器上用shell写了个deploy脚本拉取仓库的代码,然后用php脚本处理gogs发送web hooks的post请求,验证通过后再去执行deploy脚本。
执行脚本的主体是nginx,所以我将nginx添加进可信组


#6

你确定复制的是 public key 吧。。。?


#7

确定,复制的是如下位置的:
/var/lib/nginx/.ssh/id_rsa.pub
刚才又试了次,还是不行


#8

你到 https://try.gogs.io 上试下?


#9

刚才试了下,还是一样的问题。
如果密钥真的验证不通过的话,我直接添加进authorized_keys应该也是不能用的


#10

我都是用的这篇文章的方法生成的 http://blog.csdn.net/hustpzb/article/details/8230454

对比了下你好像没有添加 -C。。。虽然我不懂是干嘛的

Edit: 好像是注释的意思。。应该没有关系。。那你本地生成的 Key 呢?能添加吗?


#11

虽然我也不知道是我这边还是你那边的问题,不过至少问题有解决办法。
有空再研究研究。
还是非常感谢为我们提供了这么好的一个工具!


#12

如果本地生成一个可以用。。那就移植过去试试。。。


#13

嗯,不过貌似还没有人遇到我这种奇葩的问题。:grinning:


#14

我也遇到这个问题了,在IDE的terminal中打印的public key会有格式问题,换成powershell 打印就可以了