腻子键 -> 连接被拒绝(权限正常,/var/log/auth.log 为空)

Ber*_*ala 5 ssh authentication putty

我已经在这里检查过: 尝试使用密钥文件进行 ssh 身份验证:服务器拒绝了我们的密钥

我做了所有这些

*新的:

  • Linux 客户端中通过 ssh-gen 生成的密钥。
    • 通过 ssh-copy 将公钥添加到服务器

现在我没有看到任何错误消息,这是 ssh -vvv:http ://pastebin.com/Cxspz5P3

可能是认证过程有命令,但服务器首先尝试验证密码,而不是尝试公钥?


原帖:到目前为止我尝试过的:

  • 在 Windows 客户端中通过 puttygen (v.2015-12-03) 生成的密钥:

    • 2048 位,还尝试了 1024 位的密钥对
  • 从 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_configLogLevel 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)

系统

  • 尝试连接:
    • 来自 windows(腻子 2015-12-3,关键是 PPK)
    • 来自 linux/mint 17(通过 ssh、openssh 密钥)
  • 服务器:Ubuntu 14.04.2 LTS
  • puttygen 在 windows 上生成的密钥 (v.2015-12-03)
  • 也尝试过“kitty”(油灰叉)
  • 带密码的 ssh - 有效。总是。

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)

Bla*_*ack 2

与手动删除标头和换行符相比,转换公钥格式的更不容易出错的方法是使用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)

(即复制包含密钥的所有四行并删除换行符)