繁体   English   中英

openssh windows 错误的所有者或权限

[英]openssh windows bad owner or permissions

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

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

我看过这两个问题https://superuser.com/questions/348694/bad-owner-or-permissions-error-using-cygwins-ssh-exehttps: //313/questions/23 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 并得到相同的错误。

我不知道还能做什么,我的设置有什么问题吗? 我还安装了安装了 mingw 的 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 显示为所有者

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

您无需更改任何权限。

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

将 ssh 客户端从C:\\Windows\\System32\\OpenSSH\\ssh.exe 更改C:\\Program Files\\Git\\usr\\bin\\ssh.exe对我有用

重新安装windows后遇到同样的问题。 只需将文件权限更改为

.ssh-config 文件权限

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

笔记:

对于那些仍在为此苦苦挣扎的人,请查看: https : //github.com/PowerShell/openssh-portable/pull/418 这就是我的情况。 事实证明,您的计算机的名称应该与您的用户名不同......

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

我不确定您正在运行什么版本的 Windows,但由于这是最近的 Windows 10。我最近发现 OpenSSH 客户端在 2018 年 4 月更新时默认安装。 然后我发现我有两个 OpenSSH 实例:一个是我自己安装的,另一个是 Windows 给我的。 卸载我安装的那个导致了您描述的错误消息。

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

希望这可以帮助!

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

git clone git@github.com:PowerShell/openssh-portable.git
cd openssh-portable/contrib/win32/openssh
.\FixUserFilePermissions.ps1 -Confirm:$false

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

.ssh - 文件夹

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

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

对于在应用所有者 + 修改(加上管理员的完全控制)后仍然遇到问题的任何人:它对我不起作用。 然后我看到了一个删除所有其他用户(包括所有管理员)的解决方案,这也没有帮助。

这对我有用:

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

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

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

如果用户在管理组中,只需将配置保存在 c:\\programdata\\ssh\\ssh_config 而不是 %USERPROFILE%.ssh\\config,就可以了

对我来说,它是通过在 ~/.ssh/ 下运行 chmod 0644 配置来修复的。 早些时候它被设置为 755,这导致“/home/home/.ssh/config 上的所有者或权限错误”

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

然后我终于找到了解决它的方法:

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

因此,如果其他解决方案对您不起作用,也许您可​​以试试这个。 希望它有帮助。

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

我遇到了这个问题,并且在配置文件上更改权限或禁用继承都无法解决它。 原来它不喜欢我的电脑名和用户名一样,所以我重新命名了我的电脑,允许打开ssh重新创建配置文件,现在权限正确。 一开始这可能是个坏主意,tbh。

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

1- 转到您的 ./ssh 文件夹以及configid_rsa文件。 从属性 -> 安全 -> 高级: 2- 确保您登录的用户是那里的唯一用户。

没有组更改或其他什么,第一个答案是正确的。更改为 git ssh.exe 如何?

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

对我来说,它是通过在运行 WSL 时在 ~/.ssh/ 下运行 chmod 0644 配置来修复的。

  1. 配置文件重命名为类似config2
  2. 用记事本打开这个文件
  3. 另存为配置(原名)

这对我有用。

我删除了C:\\Users\\user/.ssh/config并重新运行我的东西,然后它起作用了。

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

您可以不使用属性框,而是使用单行:

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

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

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

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

禁用继承后,请确保添加当前用户,否则无法编辑文件

今天遇到了完全相同的问题,这就是我解决它的方法:

  1. 转到C:\\Users\\username.ssh
  2. 右键单击配置文件
  3. 属性 -> 安全 -> 高级 -> 禁用继承 -> 禁用继承 -> 从此对象中删除所有继承的权限 -> 应用 -> 是 -> 确定 -> 确定在此处输入图片说明

大家好,经过一天的故障排除后,我发现这个“m..f..”配置文件不应该位于 .ssh/ 路径中。

对于 VSCODE,只需按照调色板命令的第二个选择中的建议在 'C:\ProgrmaData\ssh\ssh_config' 路径中设置配置,并为此配置忘记.shh 路径。

这对我来说很好。

注意:这里还创建了一个 known_host 文件,里面有奇怪的 VM 名称,我也删除了这个文件。 这有帮助

对我来说,重新编辑 Windows 中的权限设置太复杂了。 在 vscode 中重新生成另一个配置也不起作用。

我设置了一个自定义配置文件路径来解决这个问题。
[“远程 SSH:配置文件”]
自定义 SSH 配置文件的绝对文件路径。

注意:通过@ext:ms-vscode-remote.remote-ssh,ms-vscode-remote.remote-ssh-edit config file搜索此选项

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM