我已经在这里检查过了: 尝试使用密钥文件进行 ssh 身份验证:服务器拒绝我们的密钥
和我做了所有这些:
*新的:
- 通过 ssh-gen 生成密钥Linux 客户端。
- 通过 ssh-copy 将公钥添加到服务器
现在我没有看到任何错误消息,这是 ssh -vvv:
http://pastebin.com/Cxspz5P3
难道认证过程是有顺序的,但是服务器首先尝试验证密码,而不是尝试公钥?
原帖:我迄今为止尝试过的:
在 Windows 客户端中通过 puttygen (v.2015-12-03) 生成密钥:
- 2048 位,并尝试使用 1024 位的密钥对
从 puttygen 复制一行格式的“openssh 公钥”,
如下行:
ssh-rsa xxxx... ==
将其粘贴到 ubuntu 服务器
~/.ssh/authorized_keys
一行用于 2048 位密钥,另一行用于 1024 位密钥
我像这样更改了文件权限:
chmod 700 ~/.ssh chmod 600 authorized_keys chmod 700 ~ chown -R $USER.$USER ~/
Putty 会话设置:
'连接' > '数据' > '用户名' > myuser
'connection' > 'ssh' > 'auth' > PPK 文件
尝试使用 2048 位和 1024 位密钥(以及它们各自的公钥)
也尝试从 localhost (
ssh -i .ssh/mykey myuser@localhost
) – 得到同样的/var/log/auth
错误:Failed publickey for (myuser) from ::1 port 50087
增加日志级别
/etc/sshd_config
:(LogLevel VERBOSE
还有更高的价值吗?),然后重新启动。/var/log/auth.log
现在给出:**Failed publickey for** myuser from xx.xx.xx.xx port xx: RSA xx:xx:xx...
系统:
- 尝试连接自:
- 从 Windows(putty 2015-12-3,密钥是 PPK)
- 来自 linux/mint 17 (通过 ssh、openssh 密钥)
- 服务器:Ubuntu 14.04.2 LTS
- 在 Windows 上由 puttygen 生成的密钥(v.2015-12-03)
- 还尝试使用“kitty”(油灰叉)
- 使用密码进行 ssh – 有效。始终有效。
tail -f /var/log/auth.log
对于登录失败不显示任何信息,仅显示登录成功和注销的信息。
可以治愈吗?
还有其他方法可以诊断这个问题吗?
问答:
问:什么是“数据”连接?为什么在两种情况下都不使用“ssh”?
A. 它只是 putty 配置中的部分名称。
问:cat /etc/ssh/sshd_config|grep -i author
A. AuthorizedKeys文件 ~/.ssh/authorized_keys
问:ls -lZ .ssh(在服务器上)
drwx------ 2 myuser myuser ? 4096 Dec 5 12:28 . <---- the .ssh dir
-rw-r--r-- 1 myuser myuser ? 666 Dec 5 12:29 known_hosts
-rw------- 1 myuser myuser ? 1671 Dec 3 12:07 mykey.ssh
-rw------- 1 myuser myuser ? 608 Dec 3 11:47 authorized_keys
答案1
与手动删除标题和换行符相比,转换公钥格式的更不容易出错的方法是使用ssh-keygen
如下方法:
ssh-keygen -i -f publickeywithheaders.pub
它应该输出可以附加到authorized_keys文件的内容。
答案2
我以前在 PuTTY 中遇到过这种情况,其中公钥的写法如下(例如您的链接问题):
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "user@computer"
ssh-rsa blah1blah2blah3blah4
blah5blah6blah7blah8
blah9blah10blah11blah12
blah13blah14=user@computer
---- END SSH2 PUBLIC KEY ----
正如您所知,它需要一行,以 开头的一行ssh-rsa
。也就是说,删除“BEGIN”行、“注释”行和“END”行。
不过,我不确定你是否这样做了:
ssh-rsa blah1blah2blah3blah4
你需要做的是这样的:
ssh-rsa blah1blah2blah3blah4blah5blah6blah7blah8blah9blah10blah11blah12blah13blah14=user@computer
(即复制包含密钥的所有四行并删除换行符)