(我在本地机器上使用虚拟机,因此安全性现在并不是很重要。我不会在开放的机器上执行此操作)。
我正在进行一个复杂的构建,并花费了相当多的时间查看配置文件和日志文件。
因此我想scp
以 root 身份在 vagrant 文件夹之外运行,因为日志文件和配置文件具有相当严格的权限。
为此,我想设置一个更广泛的 ssh,而不仅仅是内置的,vagrant ssh
它只在 vagrant 目录下工作。
步骤 1 将合适的密钥复制到虚拟机
做一个ssh-copy-id -i <somekey> vagrant@myvm
。
好的,此时,只要我选择了正确的密钥并且它已加载到 ssh-agent 中,我现在就可以了ssh vagrant@myvm
。
第 2 步,对 root 也启用此功能。
(如果我执行ssh-copy-id root
,系统会要求输入密码,不行),所以我将复制授权密钥。
以 vagrant 身份通过 ssh 进入虚拟机。
sudo -s
cd /root #root's home
#copy vagrants authorized keys.
cp -r /vagrant/.ssh .
这有效。 我可以ssh root@myvm
ln -s /home/vagrant/.ssh .ssh
但没有奏效的是,我尝试以 root 身份登录来替换副本。
替换ln -s
为cp -r
,一切恢复正常。
现在,我确实看到了为什么这会是一种良好的安全性的原因——任何拥有 vagrant 用户凭据的人都可以将新密钥推入 vagrant 并神奇地为 root 打开它,而无需在以 root 身份登录时执行任何操作。
但,sshd-可能-ssh-目录被符号链接说符号链接的 .ssh 没问题。实际上没有答案,只有一条评论。
那么 a) 符号链接 .ssh 可以吗?b) 但对于 root 来说不可以?
环境:macos Sierra 主机、Ubuntu 16.04 客户机、Vagrant 2.0.0
答案1
@TooTea 的评论https://serverfault.com/a/951469/991587很精彩,我可以在这里重写吗?
对于属于 user1 的密钥:
chmod 644
允许 user2 使用密钥- 但用户 1 不能再使用他的密钥了
chown nobody
消除此限制并允许用户 1 和用户 2 使用该密钥。
警告,所有其他用户现在也可以使用此密钥。