【问题标题】:Passwordless ssh authentication fails because of 'Unable to load host key'由于“无法加载主机密钥”,无密码 ssh 身份验证失败
【发布时间】:2012-11-01 08:16:12
【问题描述】:

无法设置 ssh 无密码认证


我无法通过无密码身份验证从 Windows 客户端 SSH 到 UBuntu 服务器。 UBuntu 上的 ssh 版本是 OpenSSH_5.8p1 Debian-7ubuntu1, OpenSSL 1.0.0e ,而 Windows 客户端上的 SSH 版本是 OpenSSH_5.1p1, OpenSSL 0.9.8k。我打开了 ssh 调试并注意到服务器和客户端上的这些消息:

/usr/bin/sshd -d -p 2222 on server

adminuser@server:~/.ssh$ /usr/sbin/sshd -d -p 2222

debug1: sshd version OpenSSH_5.8p1 Debian-7ubuntu1

debug1: could not open key file '/etc/ssh/ssh_host_rsa_key': Permission denied

Could not load host key: /etc/ssh/ssh_host_rsa_key

debug1: could not open key file '/etc/ssh/ssh_host_dsa_key': Permission denied

Could not load host key: /etc/ssh/ssh_host_dsa_key

debug1: could not open key file '/etc/ssh/ssh_host_ecdsa_key': Permission denied

Could not load host key: /etc/ssh/ssh_host_ecdsa_key

debug1: setgroups() failed: Operation not permitted

debug1: rexec_argv[0]='/usr/sbin/sshd'

debug1: rexec_argv[1]='-d'

debug1: rexec_argv[2]='-p'

debug1: rexec_argv[3]='2222'

Set /proc/self/oom_score_adj from 0 to -1000

debug1: Bind to port 2222 on 0.0.0.0.

Server listening on 0.0.0.0 port 2222.

debug1: Bind to port 2222 on ::.

Server listening on :: port 2222.

debug1: Server will not fork when running in debugging mode.

debug1: rexec start in 5 out 5 newsock 5 pipe -1 sock 8

debug1: inetd sockets after dupping: 3, 3

Connection from 10.221.84.65 port 2414

debug1: Client protocol version 2.0; client software version OpenSSH_5.1

debug1: match: OpenSSH_5.1 pat OpenSSH*

debug1: Enabling compatibility mode for protocol 2.0

debug1: Local version string SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1

debug1: list_hostkey_types: 

No supported key exchange algorithms

debug1: do_cleanup

debug1: do_cleanup


ssh -vvv on client

C:\Documents and Settings\clientuser>ssh -vvv -p 2222 adminuser@server.com

OpenSSH_5.1p1, OpenSSL 0.9.8k 25 Mar 2009

debug2: ssh_connect: needpriv 0

debug1: Connecting to server.com port 2222.

debug1: Connection established.

debug1: identity file /cygdrive/c/Documents and Settings/clientuser/.ssh/identity type -1

debug3: Not a RSA1 key file /cygdrive/c/Documents and Settings/clientuser/.ssh/
id_rsa.

debug2: key_type_from_name: unknown key type '-----BEGIN'

debug3: key_read: missing keytype

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug3: key_read: missing whitespace

debug2: key_type_from_name: unknown key type '-----END'

debug3: key_read: missing keytype

debug1: identity file /cygdrive/c/Documents and Settings/clientuser/.ssh/id_rsa
type 1

debug1: identity file /cygdrive/c/Documents and Settings/clientuser/.ssh/id_dsa
type -1

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debia
n-7ubuntu1

debug1: match: OpenSSH_5.8p1 Debian-7ubuntu1 pat OpenSSH*

debug1: Enabling compatibility mode for protocol 2.0

debug1: Local version string SSH-2.0-OpenSSH_5.1

debug2: fd 3 setting O_NONBLOCK

debug1: SSH2_MSG_KEXINIT sent

Read from socket failed: Connection reset by peer

我验证了主机上的授权密钥、.ssh 等权限是正确的。我重新生成了主机密钥以绕过“无法加载主机密钥”并重新启动 ssh 服务,但问题仍然存在。关于什么可能是错误的任何建议?主机私钥无法加载,因为它们归“root”用户所有。不允许将其权限更改为模式 600 以外的任何内容。我被困在这一点上..请帮忙!欣赏!

【问题讨论】:

  • 你的'root'提示真的是'$'吗?

标签: authentication permissions ssh private-key


【解决方案1】:

您需要以 root sudo /usr/sbin/sshd 身份运行 SSH 服务器才能读取服务器的私钥。

【讨论】:

    猜你喜欢
    • 2020-09-04
    • 2021-05-02
    • 1970-01-01
    • 2020-07-15
    • 2014-01-31
    • 1970-01-01
    • 2013-08-31
    • 2018-04-06
    • 1970-01-01
    相关资源
    最近更新 更多