为什么 OPENSSH 尝试打开 C:\Windows\.ssh\authorized_keys 而不是用户目录?

为什么 OPENSSH 尝试打开 C:\Windows\.ssh\authorized_keys 而不是用户目录?

使用适用于 Windows 的 OpenSSH,我尝试使用公钥设置 SFTP。

我的错误日志显示:

12080 2020-03-20 11:51:02.136 debug3: Failed to open file:C:/Windows/.ssh/authorized_keys error:2
12080 2020-03-20 11:51:02.136 debug1: Could not open authorized keys 'C:\\Windows\\.ssh/authorized_keys': No such file or directory

在 sshd_config 中我们配置了一个用户,如下所示:

Match User testuser
    ChrootDirectory E:\Integration\SFTP\TestUser 
    PasswordAuthentication no
    PubkeyAuthentication yes

那么软件不应该去 E:\Integration\SFTP\TestUser\.ssh\authorized_keys 获取密钥文件吗?

然后作为测试,我将用户的authorized_key复制到c:\Windows..sh目录,然后出现此错误:

debug1: trying public key file C:\\Users\\testuser\\.ssh/authorized_keys
debug3: Failed to open file:C:/Users/testuser/.ssh/authorized_keys error:2
debug1: Could not open authorized keys 'C:\\Users\\testuser\\.ssh/authorized_keys': No such file or directory

当我将密钥放入上述目录中时,它起作用了。所以 ChrootDirectory 仅适用于发送和接收文件的源,而不适用于 .ssh 文件?接下来我将尝试从 C:\Windows 中删除...

我删除了文件 C:\Windows.ssh\authorized_keys,它仍然有效。所以也许当找不到用户时,它会转到 C:\Windows 目录作为备份源?

答案1

当我手动创建用户文件夹而不是使用实际用户帐户登录时,出现了错误“C:\Windows\.ssh/authorized_keys':没有此文件或目录”。

我的情况已通过以下方式解决:

  1. 重命名/删除手动创建的用户文件夹
  2. 使用实际用户账户登录
  3. 创建/复制 .ssh 文件夹和 authorized_keys 文件
  4. 检查 .ssh -folder 和 authorized_keys -file 的访问权限

相关内容