我想使用 docker-machine 从我的本地计算机在 Debian 9 服务器上部署容器。
我遵循了这一页,明确指出:
如果您在主机上使用“sudo”,请确保配置无密码 sudo:
# visudo %sudo ALL=(ALL) NOPASSWD:ALL
此外,generic
docker-machine 驱动程序的 docker 文档提及相同:
Sudo 权限
可以使用标志指定用于通过 SSH 进入主机的用户
--generic-ssh-user
。此用户需要无密码的 sudo 权限。如果不是这种情况,您需要编辑该sudoers
文件并使用以下命令将用户配置为 sudoerNOPASSWD
我不是专家,但我觉得这里有些不对劲...允许生产服务器上的用户在没有密码的情况下执行任何命令不会造成安全漏洞吗?还是我遗漏了什么?
答案1
3 个月后,我想我找到了自己问题的答案。似乎只有生产服务器首次在 docker-machine 中注册时才需要无密码配置。
一旦docker-machine create --driver generic [...]
成功输入命令,docker-machine
就能够使用端口 2376 上的套接字连接到远程主机,并且sudo
不再在生产服务器上使用。
换句话说,无密码 sudo 配置应该在服务器上存在几秒钟,并且可能会稍后被禁用。