答案1
你的 SSH 客户端日志表明客户端是提供密钥,但服务器没有接受这意味着下一步是看看你的服务器的 sshd
日志(journalctl -S -1h
),因为它们包含密钥被拒绝的原因——如果不是默认的话,那么肯定是在提高日志级别之后(例如,添加LogLevel VERBOSE
或DEBUG
将/etc/ssh/sshd_config
是一个好的开始)。
在这种情况下:
您生成的密钥是不是同一个密钥您尝试连接的。您生成并上传的密钥存储在,但您从未告诉 SSH 客户端在连接时使用该密钥——正如您从客户端日志中看到的那样,它仍然使用默认密钥,这是一个完全不同的文件。
~/.ssh/id_macbook
~/.ssh/id_rsa
sshd 日志会显示在authorized_keys中未找到提供的密钥。
在连接时使用选项指定正确的密钥
-i <file>
(或通过 ~/.ssh/config 中的 IdentityFile)或使用 将密钥加载到 ssh-agent 中ssh-add <file>
。您的
authorized_keys
文件设置为全球可写(可能是由于umask
服务器上的设置奇怪?),这很可能会导致 sshd 出于安全原因忽略该文件。sshd 日志会显示权限“太开放”。
将其更改
chmod
为仅可由所有者访问。