openssh windows坏主人或权限

gar*_*y69 14 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并得到了同样的错误.

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

小智 83

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

您无需更改任何权限。

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

  • 当您禁用继承时,系统会询问您是否要复制当前继承的访问权限。选择“是”,然后继续删除其他用户,如上所述。 (3认同)
  • 我的情况似乎就是如此。我会在系统上设置另一个用户帐户进行测试。而且它有访问权限。一旦我将该用户从“.ssh”文件夹的访问权限中删除,它就可以正常工作。 (2认同)
  • 我尝试过,但它没有解决我的问题 (2认同)

Ala*_*ALI 20

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

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


Его*_*гин 19

对于那些仍在为此苦苦挣扎的人,请查看:https : //github.com/PowerShell/openssh-portable/pull/418。这就是我的情况。事实证明,您的计算机的名称应该与您的用户名不同...... ??? 它可能会在未来的更新中很快修复,因为修复已经提交。

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

  • 虽然此链接可以回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会变得无效 (2认同)

Lar*_*ryH 17

您可以使用一个衬垫,而不是使用属性框:

icacls .ssh /grant:r <yourUserName>:f /inheritance:r
Run Code Online (Sandbox Code Playgroud)

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

保持known_hosts可写 icacls .ssh/known_hosts /grant:rw <username>:f /inheritance:r

  • 没有足够的赞成票,我想终端有点太可怕了,但这确实是更好的方法。我将只添加known_hosts 文件应该保持可写。` icacls .ssh/known_hosts /grant:rw &lt;用户名&gt;:f /inheritance:r ` (5认同)

Ger*_*rbó 11

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

  • 谢谢你的提示。我通过将 *C:\Program Files\Git\usr\bin* 添加到系统变量 Path 并确保它位于 *%SYSTEMROOT%\System32\OpenSSH* 之上(之前)来解决该问题。遗憾的是,我无法将 Git 的 *ssh* 与 Windows 的 *ssh-agent* 服务一起使用。然后我将解密我所有的私钥。 (4认同)
  • 步骤:[文件] -&gt; [首选项] -&gt; [设置] -&gt; 搜索 `remote.ssh.path` -&gt; 输入 ```C:\Program Files\Git\usr\bin\ssh.exe``` 到[Remote.SSH:路径] 请参阅:https://code.visualstudio.com/docs/remote/troubleshooting#_installing-a-supported-ssh-client (4认同)
  • 如果您还告诉了步骤,那就更好了。 (2认同)
  • 我通过使用 GitBash 而不是 Cygwin 解决了这个问题。 (2认同)

Fer*_*nto 9

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

.ssh-config文件权限

SYSTEM & Administrators - Full Control
[your username] - Modify & as Owner
Run Code Online (Sandbox Code Playgroud)

注意:

  • 在删除继承和所有其他权限并仅添加我自己的完全控制后,这对我有用(Windows 10 上的 OpenSSH-Win32)。 (3认同)
  • 将文件的完全控制权授予用户和/或删除继承并没有帮助。我想我会更改 SSH 客户端,因为我安装了 Git Bash :) (2认同)

17s*_*lim 6

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

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

希望这可以帮助!


Sla*_*don 6

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

git clone git@github.com:PowerShell/openssh-portable.git
cd openssh-portable/contrib/win32/openssh
.\FixUserFilePermissions.ps1 -Confirm:$false
Run Code Online (Sandbox Code Playgroud)

  • 我必须克隆存储库,cd 到`/openssh-portable/contrib/win32/openssh`,然后运行上面的命令。比配置 Windows 文件属性和权限容易得多。 (2认同)

小智 5

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

.ssh - 文件夹

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

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