回答:
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ですが、sudo構成からパスワードを単に削除するのではなく、SSHエージェントを使用して強力な認証を実行します。
authorized_keys
rootだけが変更できるようにロックダウンする必要があります。そうしないと、パスワードを無効にすることもできます。
Andre de Mirandaの答えはpam_ssh_agent_authを使用した優れたソリューションを提供しますが、一部が古くなっています。特に、/etc/pam.d/sudo
現在の多くのLinuxバージョンを使用する場合の手順。
Ubuntu 12.04を正確に実行している場合、私は実際にプロセスを単純化しました。ppaからpam_ssh_agent_authビルドを提供することです:ppa:cpick / 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構成を構成する必要があります。Ubuntu12.04では、次の2つのファイルを作成することで正確に行うことができます。
/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
chefを使用している場合、上記のプロセスは、次の2つの場所のいずれかにある私のクックブックで自動化できます
。https : //github.com/cpick/pam-ssh-agent-auth
http://community.opscode .com / cookbooks / pam-ssh-agent-auth。
クックブックのfiles
ディレクトリには、Ubuntu 12.04で正確に動作する上記のファイル/etc/pam.d/sudo
と/etc/sudoers.d/pam-ssh-agent-auth
ファイルが含まれており、他のバージョン/ディストリビューションを使用する際の出発点として役立ちます。
/etc/sudoers
することもできますかsudo /usr/sbin/visudo