openssh windows bad owner或permissions

时间:2018-04-19 16:53:44

标签: windows file-permissions openssh

我已经为windows安装了openssh,当我运行ssh localhost时,我得到了

  

C:\ Users \ gary / .ssh / config

上的所有者或权限错误

我已经查看了这两个问题https://superuser.com/questions/348694/bad-owner-or-permissions-error-using-cygwins-ssh-exehttps://serverfault.com/questions/253313/ssh-returns-bad-owner-or-permissions-on-ssh-config,但没有一个答案适合我。 sshd作为本地系统用户作为服务运行。我已经chmod 0600 C:\Users\gary\.ssh\configchown gary C:\Users\gary\.ssh\config了。我还通过再次运行setfacl -b C:\Users\gary\.ssh\config然后chmod 0600 C:\Users\gary\.ssh\config清除了ACL。我也尝试将所有者更改为SYSTEM并遇到同样的错误。

我不知道还能做什么,我的设置有什么问题吗?我也安装了安装了ming的git,我从我的git安装中删除了ssh和sshd,所以他们不会在我的路上。

我运行的其他命令是 icacls "C:\Users\gary\.ssh\config" /setowner gary chown -R gary:1049089 C:\Users\gary\.ssh

ls -la C:\Users\gary\.ssh\config显示

  

-rw-r - r-- 1 gary 1049089 229 Jan 3 14:43' C:\ Users \ gary.ssh \ config'

它甚至在将所有者更改为SYSTEM后仍然显示此内容,但在文件资源管理器中的文件属性中,它显示SYSTEM为所有者

20 个答案:

答案 0 :(得分:9)

对于那些仍在努力解决此问题的人,请查看以下内容:https://github.com/PowerShell/openssh-portable/pull/418。对我来说就是这种情况。事实证明,您的计算机的名称应与用户名不同... ?‍♂️由于修订已提交,因此将来的更新中可能会很快对其进行修复。

再次如此::如果您的计算机名称与用户名相同,并且您仍未通过权限对话框解决此问题,那么重命名计算机可能会有所帮助。

答案 1 :(得分:6)

将ssh客户端从 C:\ Windows \ System32 \ OpenSSH \ ssh.exe 更改为 C:\ Program Files \ Git \ usr \ bin \ ssh.exe 为我工作。

答案 2 :(得分:4)

重新安装Windows后出现同样的问题。只需将文件权限更改为

即可轻松修复

.ssh-config file permissions

SYSTEM & Administrators - Full Control
[your username] - Modify & as Owner

注意:

答案 3 :(得分:3)

在我创建了另一个具有管理员权限的用户后,此帐户立即弹出,并且该帐户开始继承对我的.ssh文件夹的访问权限。

您无需更改任何权限。

只需转到.ssh,右键单击“属性”,“安全性”选项卡,“高级”。禁用继承,然后单击管理员用户(不是您的用户)并将其删除。应用。完成。

答案 4 :(得分:2)

在 Windows 服务器上,这是由于权限问题。需要删除其他用户对以下文件夹的访问权限

.ssh - 文件夹

右键单击此文件夹-> 选择“授予访问权限”-> 单击“删除访问权限” 右键点击这个文件夹->选择“属性”->“安全”->点击“编辑权限”-删除除您登录的ID以外的其他用户

对您拥有 .pem 文件的文件夹重复相同的过程。 (注意:将 .pem 文件保存在单独的文件夹中)

答案 5 :(得分:2)

我不确定您运行的是哪个版本的Windows,但是由于这是最新版本,所以我猜想是Windows10。我最近发现,默认情况下,截至2018年4月,已安装OpenSSH客户端。然后,我发现我有两个OpenSSH实例:一个是我自己安装的,另一个是Windows给我的。卸载我安装的安装程序会导致您描述的错误消息。

对我有用的解决方案是删除用户安装的OpenSSH以及C:\Users\username\.ssh文件夹,并让Windows 10 OpenSSH在下次运行命令时创建该文件夹。我没有担心丢失的任何配置,但是如果您这样做,建议您将文件内容复制并粘贴到某个位置,然后再进行恢复。

希望这会有所帮助!

答案 6 :(得分:1)

对我来说,它是通过在〜/ .ssh /下运行chmod 0644 config来修复的。先前将其设置为755,这会导致“ /home/home/.ssh/config的所有者或权限错误”

答案 7 :(得分:1)

我遇到了这个问题,更改配置文件的权限或禁用继承都无法解决该问题。原来,它不喜欢我的计算机名和用户名相同,所以我重命名了我的计算机,允许open ssh重新创建配置文件,并且权限现在正确。首先,这可能不是一个好主意,

答案 8 :(得分:0)

域名转换后,我开始遇到同样的问题。浏览了列出的所有建议,但没有任何效果,包括 chmod 和 chown 解决方案。

我通过复制文件夹、粘贴它、删除原始文件夹,然后将其重命名回 .ssh 来解决了这个问题。

答案 9 :(得分:0)

对于任何人,在应用所有者+修改(加上对管理员的完全控制权)后仍然遇到麻烦的情况:它对我不起作用。然后,我看到了一个删除所有其他用户(包括所有管理员)的解决方案,该解决方案也无济于事。

这对我有用:

  • 如上建议,将系统和管理员留在适当的位置,并拥有完全控制的权限
  • 按照上述建议,将用户本身保留为所有者,并进行修改
  • 但是,请删除任何其他用户或组。您可能需要先进入高级,以禁用权限继承

在删除进入Windows文件夹(通过UAC框)后由Windows添加的管理用户之后,它再次对我有用。

希望这对遇到此特定问题的人有所帮助:-)

答案 10 :(得分:0)

您可以使用单行代替属性框:

icacls .ssh /grant:r <yourUserName>:f /inheritance:r

/grant:r username:f -> 授予和覆盖权限,赋予 username 完全权限 /inheritance:r -> 删除继承的权限

答案 11 :(得分:0)

我删除了 document.body.click() 并重新运行了我的东西,然后就成功了。

但是,如果您有有价值的东西,请先备份,以防万一!

答案 12 :(得分:0)

  1. config 文件重命名为 config2
  2. 使用记事本打开此文件
  3. 另存为配置(原始名称)

这对我有用。

答案 13 :(得分:0)

我尝试了上述所有解决方案,但遗憾的是仍然无法解决此问题。我很确定我的ssh配置的权限是正确的,这已经通过资源管理GUI和Get-Acl命令进行了验证。

然后我终于找到一种解决方法:

删除整个.ssh文件夹,然后打开powershell并键入ssh localhost。它将为您创建一个新的.ssh文件夹,然后您可以应用上述权限调整(对我来说,我只做了一件事:禁用继承)。

因此,如果其他解决方案不适合您,也许您可​​以尝试一下。希望对您有所帮助。

PS:在删除旧的.ssh文件夹之前,请不要忘记备份它。

答案 14 :(得分:0)

对我来说,它是通过在运行WSL时在〜/ .ssh /下运行chmod 0644 config来解决的。

答案 15 :(得分:0)

无组更改或其他任何操作,第一个答案是正确的。更改为git ssh.exe 怎么样?

  • 设置
  • 中卸载win10的openssh
  • 将git的ssh.exe路径添加到您的Path

答案 16 :(得分:0)

问题似乎出在文件拥有/拥有多个用户权限。

1-转到您的./ssh文件夹,并同时找到configid_rsa文件。从属性->安全->高级: 2-确保您是IS的唯一用户。

答案 17 :(得分:0)

如果用户在“管理”组中,则只需在 c:\ programdata \ ssh \ ssh_config代替%USERPROFILE%.ssh \ config将起作用

答案 18 :(得分:0)

使用FixUserFilePermissions.ps1修复客户端文件的权限-当前用户的密钥和配置文件。

.\FixUserFilePermissions.ps1 -Confirm:$false

答案 19 :(得分:-1)

我猜这是由错误的路径表达式引起的。

C:\ Users \ gary / .ssh / config的不良所有者或权限

/.ssh应该是\.ssh。因此,我尝试使用git bash(在Windows系统中安装git时的终端工具)运行ssh命令。真的行。但是我真的不知道是否是我猜到的原因造成的。