无密码 SSH——没运气

无密码 SSH——没运气

需要从我的 Macbook(客户端)获得对 Ubuntu 22.04 服务器(服务器)的无密码 SSH 访问。客户端上的 ssh_config 和服务器上的 sshd_config 保持原始状态

在客户端执行的所有步骤:

  1. 创建密钥(无密码):

在此处输入图片描述

  1. 将此密钥复制到服务器:

在此处输入图片描述

  1. 检查 ssh 连接:

在此处输入图片描述 连接成功,但仍要求输入密码(((

怎么了?

解决方案:

添加IdentityFile ~/.ssh/id_macbook到客户端的 /etc/ssh/ssh_config

答案1

你的 SSH 客户端日志表明客户端提供密钥,但服务器没有接受这意味着下一步是看看你的服务器的 sshd日志(journalctl -S -1h),因为它们包含密钥被拒绝的原因——如果不是默认的话,那么肯定是在提高日志级别之后(例如,添加LogLevel VERBOSEDEBUG/etc/ssh/sshd_config是一个好的开始)。

在这种情况下:

  1. 您生成的密钥是不是同一个密钥您尝试连接的。您生成并上传的密钥存储在,但您从未告诉 SSH 客户端在连接时使用该密钥——正如您从客户端日志中看到的那样,它仍然使用默认密钥,这是一个完全不同的文件。~/.ssh/id_macbook~/.ssh/id_rsa

    sshd 日志会显示在authorized_keys中未找到提供的密钥。

    在连接时使用选项指定正确的密钥-i <file>(或通过 ~/.ssh/config 中的 IdentityFile)或使用 将密钥加载到 ssh-agent 中ssh-add <file>

  2. 您的authorized_keys文件设置为全球可写(可能是由于umask服务器上的设置奇怪?),这很可能会导致 sshd 出于安全原因忽略该文件。

    sshd 日志会显示权限“太开放”。

    将其更改chmod为仅可由所有者访问。

相关内容