【问题标题】:Use knife solo with a non-root user with sudo access, without a password对具有 sudo 访问权限的非 root 用户使用刀独奏,无需密码
【发布时间】:2014-09-08 15:44:20
【问题描述】:

当我将chef knife solo 与具有sudo 访问权限的非root 用户一起使用时,它总是询问我该用户的密码。但是,我已经关闭了对该服务器的密码访问。

$ bundle exec knife solo cook supersecretuser@productionserver -VV
Starting 'Run'
Running Chef on productionserver...
Checking Chef version...
DEBUG: Initial command sudo chef-solo --version 2>/dev/null | awk '$1 == "Chef:" {print $2}'
DEBUG: Initial command sudo -V
DEBUG: Running processed command sudo -V
DEBUG: sudo -V stdout: Sudo version 1.8.9p5

DEBUG: sudo -V stdout: Sudoers policy plugin version 1.8.9p5
Sudoers file grammar version 43

DEBUG: sudo -V stdout: Sudoers I/O plugin version 1.8.9p5

DEBUG: Running processed command sudo -E -p 'knife sudo password: ' chef-solo --version 2>/dev/null | awk '$1 == "Chef:" {print $2}'
Enter the password for supersecretuser@productionserver: 

我已将我的 ssh 密钥添加到服务器,并且无需密码即可使用 ssh supersecretuser@productionserver ssh 到该服务器。

我在我的登台服务器上以 root 用户使用了chef knife solo,它工作正常。

我尝试使用-i 选项、chef knife solo cook supersecretuser@productionserver -i ~/.ssh/id_rsa.pub 显式传递我的 ssh 密钥,而knife solo 似乎没有使用它。有什么想法可以尝试下一步吗?

注意:我显示的是cook,因为这就是我所在的位置。我做了一个prepare,它起作用了,因为我还没有关闭密码访问——我的第一个cook发生了这种情况——所以我只能输入密码。

【问题讨论】:

    标签: ssh chef-infra ubuntu-14.04 knife-solo


    【解决方案1】:

    你在 ssh 和 sudo 之间搞混了,检查你的 sudoers 文件中的 supersecretuser 条目应该是这样的:

    #Vagrant entry to allow sudo from vagrant
    vagrant ALL=(ALL) NOPASSWD: ALL
    

    这里允许 vagrant 用户在没有密码的情况下 sudo 任何命令。

    【讨论】:

    • 如果你在/etc/sudoers里面看不到它,那是因为它在/etc/sudoers.d/vagrant里面
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 2023-02-01
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多