Answers:
对于sudo,您可以允许用户运行sudo而不要求输入密码,请尝试man sudoers
。您可以/etc/sudoers
通过发出visudo
命令来编辑文件。它必须特殊,因为否则文件将无法正确重新加载。结果行(此处取自文件本身的示例)应为:
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
%wesho ALL=NOPASSWD: /sbin/service httpd
@Wesho,
您可以按照DaDaDom所说的做(它可以工作并且很简单),或者您可以使用称为pam-ssh-agent-auth的PAM模块来完善设置。
Debian / Ubuntu系统的过程相当简单:
$ sudo aptitude install libssl-dev libpam0g-dev build-essential checkinstall
$ wget "http://downloads.sourceforge.net/project/pamsshagentauth/pam_ssh_agent_auth/v0.9.3/pam_ssh_agent_auth-0.9.3.tar.bz2"
$ tar -xjvf pam_ssh_agent_auth-0.9.3.tar.bz2
$ cd pam_ssh_agent_auth-0.9.3
$ ./configure --libexecdir=/lib/security --with-mantype=man
$ make
$ sudo checkinstall
编辑sudo配置:
$ sudo visudo
添加以下内容:
Defaults env_keep += SSH_AUTH_SOCK
通过更改sudo PAM设置继续:
$ sudo vi /etc/pam.d/sudo
在2条现有@include行上方添加auth行:
auth [success=2 default=ignore] pam_ssh_agent_auth.so file=~/.ssh/authorized_keys
@include common-auth
@include common-account
瞧!
没有身份验证的sudo,而是依靠SSH代理执行强身份验证,而不是简单地从sudo配置中删除密码。
authorized_keys
必须锁定,以便只有root可以更改它-否则,您最好禁用密码。
Andre de Miranda的答案使用pam_ssh_agent_auth提供了一个不错的解决方案,但其中的某些部分已过时。特别是/etc/pam.d/sudo
使用许多当前Linux版本时的说明。
如果您运行的是精确的Ubuntu 12.04,我实际上通过提供ppa:ppa:cpick / pam-ssh-agent-auth提供的pam_ssh_agent_auth简化了过程。
您可以通过运行以下命令安装软件包:
sudo add-apt-repository ppa:cpick/pam-ssh-agent-auth
sudo apt-get install pam-ssh-agent-auth
安装后,如果您想将此PAM模块与sudo一起使用,则必须配置sudo的设置和PAM配置,在Ubuntu 12.04 precision中,您可以通过创建以下两个文件来做到这一点:
/etc/sudoers.d/pam-ssh-agent-auth:
Defaults env_keep+="SSH_AUTH_SOCK"
/etc/pam.d/sudo:
ent#%PAM-1.0
auth required pam_env.so readenv=1 user_readenv=0
auth required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
auth sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys
@include common-auth
@include common-account
@include common-session-noninteractive
如果您使用的是厨师,可以使用以下两个位置之一的我的食谱自动执行上述过程:
https
://github.com/cpick/pam-ssh-agent-auth http://community.opscode .com / cookbooks / pam-ssh-agent-auth。
本食谱的files
目录包含上述/etc/pam.d/sudo
和/etc/sudoers.d/pam-ssh-agent-auth
文件,这些文件可与Ubuntu 12.04 Precision一起使用,并且在使用其他版本/发行版时应该是一个有用的起点。
/etc/sudoers
并且还可以通过运行sudo /usr/sbin/visudo