由于未找到公钥,无法进行 SSH 连接

由于未找到公钥,无法进行 SSH 连接

这是我运行的命令ssh [email protected] -v

OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: /etc/ssh/ssh_config line 53: Applying options for *
debug1: Connecting to callydai.com [107.180.55.15] port 22.
debug1: Connection established.
debug1: identity file /Users/raigovind93/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
ssh_exchange_identification: read: Connection reset by peer

关键肯定就在那里:

~/.ssh  => tree
.
├── github_rsa
├── github_rsa.pub
├── id_rsa
├── id_rsa.pub
├── known_hosts
└── known_hosts.old

如何让 SSH 命令识别 key_load_public?

答案1

这些事情完全没有关系。正如你从日志中看到的那样,

  1. 服务器突然断开连接,但实际上并未“拒绝访问”(请注意“对端重置连接”消息);
  2. 这发生在身份验证阶段之前——事实上,它发生得太早了,服务器甚至没有机会开始SSH 协议(预期出现类似的“SSH-2.0-something”行)。

此外,错误消息有点令人困惑,但它实际上是在说 ssh 无法找到证书文件——这是一些企业网络使用的可选附加文件。实际上,99% 的时间里id_rsa.pub-cert你并不需要这个文件。(因为 ssh 说这意味着它-cert…/id_rsa type 1做过识别纯密钥。

那么连接失败是从何而来的?至少要查看服务器的系统日志才能回答。例如,如果您安装了 Denyhosts,请确保您没有意外导致它将您自己放入拒绝列表中。

相关内容