Ber*_*ala 5 ssh authentication putty
我已经在这里检查过: 尝试使用密钥文件进行 ssh 身份验证:服务器拒绝了我们的密钥
和我做了所有这些:
*新的:
现在我没有看到任何错误消息,这是 ssh -vvv:http ://pastebin.com/Cxspz5P3
可能是认证过程有命令,但服务器首先尝试验证密码,而不是尝试公钥?
原帖:到目前为止我尝试过的:
在 Windows 客户端中通过 puttygen (v.2015-12-03) 生成的密钥:
从 puttygen 以 1 行格式复制“openssh 公钥”,
看起来像的行:
ssh-rsa xxxx... ==
Run Code Online (Sandbox Code Playgroud)将其粘贴到 ubuntu 服务器以 ~/.ssh/authorized_keys
一行用于 2048 位密钥,另外一行用于 1024 位密钥
我像这样更改了文件权限:
chmod 700 ~/.ssh
chmod 600 authorized_keys
chmod 700 ~
chown -R $USER.$USER ~/
Run Code Online (Sandbox Code Playgroud)腻子会话设置:
“连接”>“数据”>“用户名”> 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
Run Code Online (Sandbox Code Playgroud)增加日志级别/etc/sshd_config:LogLevel VERBOSE(有较高的价值吗?)在服务器上,并重新启动。/var/log/auth.log现在给出:
**Failed publickey for** myuser from xx.xx.xx.xx port xx: RSA xx:xx:xx...
Run Code Online (Sandbox Code Playgroud)系统:
tail -f /var/log/auth.log 没有显示任何失败的登录,只显示成功和注销。
可以治愈吗?
还有其他方法可以诊断问题吗?
问答:
问:什么是“数据”连接?为什么在这两种情况下都不使用“ssh”?
A. 它只是 putty 配置中的部分名称。
Q. cat /etc/ssh/sshd_config|grep -i author
A. AuthorizedKeysFile ~/.ssh/authorized_keys
Q. 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
Run Code Online (Sandbox Code Playgroud)
与手动删除标头和换行符相比,转换公钥格式的更不容易出错的方法是使用ssh-keygen以下方法:
ssh-keygen -i -f publickeywithheaders.pub
它应该输出可以附加到authorized_keys 文件的内容。
小智 1
我之前在 PuTTY 中遇到过这种情况,其中公钥是这样写的(就像在您的链接问题中一样):
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "user@computer"
ssh-rsa blah1blah2blah3blah4
blah5blah6blah7blah8
blah9blah10blah11blah12
blah13blah14=user@computer
---- END SSH2 PUBLIC KEY ----
Run Code Online (Sandbox Code Playgroud)
如您所知,它需要是一行,以ssh-rsa. 即删除“BEGIN”行、“注释”行和“END”行。
但是,我不确定您是否这样做了:
ssh-rsa blah1blah2blah3blah4
Run Code Online (Sandbox Code Playgroud)
你需要做的是这样的:
ssh-rsa blah1blah2blah3blah4blah5blah6blah7blah8blah9blah10blah11blah12blah13blah14=user@computer
Run Code Online (Sandbox Code Playgroud)
(即复制包含密钥的所有四行并删除换行符)