这是我运行的命令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
这些事情完全没有关系。正如你从日志中看到的那样,
- 服务器突然断开连接,但实际上并未说“拒绝访问”(请注意“对端重置连接”消息);
- 这发生在身份验证阶段之前——事实上,它发生得太早了,服务器甚至没有机会开始SSH 协议(预期出现类似的“SSH-2.0-something”行)。
此外,错误消息有点令人困惑,但它实际上是在说 ssh 无法找到证书文件——这是一些企业网络使用的可选附加文件。实际上,99% 的时间里id_rsa.pub-cert
你并不需要这个文件。(因为 ssh 说这意味着它-cert
…/id_rsa type 1
做过识别纯密钥。
那么连接失败是从何而来的?至少要查看服务器的系统日志才能回答。例如,如果您安装了 Denyhosts,请确保您没有意外导致它将您自己放入拒绝列表中。