我正在尝试使用 ssh 客户端 (client_host) 连接到运行 sshd2 的 Linux 主机 (target_host);在此过程中,我将 client_host 的公钥转换为
ssh-keygen -e -f id_rsa.pub > client_host_ssh2_id_rsa.pub
并将 client_host_ssh2_id_rsa.pub 复制到 target_host。但是当我尝试连接时,我收到“无主机密钥算法”
ssh user@target_host -v
OpenSSH_5.1p1, OpenSSL 0.9.8a 11 Oct 2005
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to target [169.35.74.21] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/identity type -1
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: identity file /home/user/.ssh/id_dsa type 2
debug1: Remote protocol version 2.0, remote software version 6.0.12.81 SSH Tectia Server
debug1: no match: 6.0.12.81 SSH Tectia Server
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
no hostkey alg
有人可以帮我找出我这里遗漏了什么吗?
答案1
最有可能的是,您缺少的是远程机器上的:
cd $HOME/.ssh; cat client_host_ssh2_id_rsa.pub >> authorized_keys
如果这还不够,请停止 sshd 守护进程,然后按如下方式重新启动它:
/usr/sbin/sshd -Dd
这会阻止守护进程,并将错误消息打印到标准输出。当您尝试登录时,您将能够看到服务器端的错误消息,出于明显的安全原因,这些错误消息比客户端的错误消息更具信息量。这将帮助您/我们调试问题。