虚拟机中 /root/.ssh/config 的所有者或权限不正确

aut*_*tix 7 virtualbox git network-shares virtual-machine

我正在使用带有 Debian 的 VirtualBox VM 作为来宾操作系统。为了在 Windows 主机和 Linux 来宾系统之间共享 SSH 密钥,我将该文件夹定义~/.ssh为共享文件夹。Bun 现在我收到一个错误:

# git clone git@github.com-user:user/project.git
Cloning into project...
Bad owner or permissions on /root/.ssh/config
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

通常要解决这个问题,只需要为~/.ssh. 但在这种情况下这是不可能的,因为它是一个共享文件夹。

是否有针对此问题的其他解决方案/解决方法?

谢谢

小智 5

正确的解决方案是停止使用 root 来检查 git 存储库。为每个用户提供自己的帐户并保持足够严格的权限,以免安全性受到损害。

另一种解决方案是使用一个基于 Web 的 git 服务器而不是基于 SSH 的服务器。我从来没有用过这些,所以我不能给你太多建议。

  • @automatix 创建一个普通(非特权)用户帐户,就像您的操作系统文档一样,几乎肯定会鼓励您这样做。正如 Zoredache 指出的那样,您正在养成坏习惯 - 始终将系统视为生产系统。 (3认同)

And*_*w B 5

免责声明:我现在相信这是 git 客户端的权限检查,而不是 ssh 服务器。那会使这个答案不正确。我在这里留下我的答案,这样我们就不必再讨论这个话题了。

我真的不想回答这个问题,但是有人最终会发布您正在寻找的答案,并且可能会附上适当的免责声明。

  1. 不要这样做。出于某种原因,其他人一直在引导您远离这个答案。这是可怕的安全。
  2. 不完全是。不要这样做。不管它看起来多么方便,这违背了 Unix 行业中理所当然的一些最基本的安全约定。如果他们发现您这样做了,即使是在您自己的系统上随意这样做,您也会失去职业生涯中的很多人的尊重。
  3. 你要求被拥有。
  4. 如果你仍然决心完成这个......

答案在man sshd_config,您正在寻找StrictModes。它不能基于每个用户进行配置;这是非常刻意的。

  • @automatix 虚拟机需要与物理机相同的安全性。也许您的意思是它需要较少的安全性,因为它位于孤立的网络上 - 如果是这样,那很好。但是,如果它像物理机器一样连接到网络,则需要相同的安全性。 (3认同)
  • 再想一想,这个问题可能属于常见问题中的“系统滥用”。我要标记它。 (2认同)

aut*_*tix 0

我已经使用此命令安装了我的共享文件夹(保存是/etc/rc.local为了在系统启动时自动安装该文件夹):

mount -t vboxsf -o uid=1000,gid=1000 sshkeys /root/.ssh
Run Code Online (Sandbox Code Playgroud)

现在我已经更改了mount commando 中的userusergroup和已挂载文件夹的访问权限:

mount -t vboxsf -o uid=0,gid=0,umask=077 sshkeys /root/.ssh
Run Code Online (Sandbox Code Playgroud)

有用。

PS 献给所有参与过本次讨论的人:

由于话题有点乱,我总结一下:

起初我遇到了问题,当它们来自共享文件夹时,我无法使用我的密钥(Bad owner or permissions...错误)。我的推论是,有两种方法:(a)按照 SSH 客户端(?)的需要设置用户、组和文件夹的访问权限,或者(b)使其忽略其访问权限限制。由于我无法将chown/chmod应用于我的共享文件夹,并且认为不可能更改它的访问权限,因此我将 (b) 视为解决该问题的最后一种可能性 - 并更改了问题/标题。这是一个错误,我刚刚做了这个更改。

关于安全性的讨论:我以 root 身份工作(在我的开发虚拟机上!),这对于每个有安全意识的用户来说都是致命的罪过。其实我也认为,一般情况下不应该以root身份登录。但我认为它不适用于开发虚拟机的情况。不管怎样——这是一个题外话,因为它与我所描述的问题无关。每个用户组的每个用户都可能发生此问题。