我已经为windows安装了openssh,当我运行ssh localhost
时,我得到了
C:\ Users \ gary / .ssh / config
上的所有者或权限错误
我已经查看了这两个问题https://superuser.com/questions/348694/bad-owner-or-permissions-error-using-cygwins-ssh-exe和https://serverfault.com/questions/253313/ssh-returns-bad-owner-or-permissions-on-ssh-config,但没有一个答案适合我。 sshd作为本地系统用户作为服务运行。我已经chmod 0600 C:\Users\gary\.ssh\config
和chown 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为所有者
答案 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后出现同样的问题。只需将文件权限更改为
即可轻松修复SYSTEM & Administrators - Full Control
[your username] - Modify & as Owner
注意:
C:\Windows\System32\OpenSSH\ssh.exe
&完全不使用cygwin 答案 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)
这对我有用。
答案 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 怎么样?
Path
答案 16 :(得分:0)
问题似乎出在文件拥有/拥有多个用户权限。
1-转到您的./ssh文件夹,并同时找到config
和id_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
命令。真的行。但是我真的不知道是否是我猜到的原因造成的。