代替パスワードを使用して「sudo」による認証を許可するには?

代替パスワードを使用して「sudo」による認証を許可するには?

私達の会社はUbuntuシステムのための非常に長いパスワードを提供します。このパスワードは繰り返し認証時に入力するのが難しいですsudo

sudo自分のアカウントに関連付けられているパスワード以外のパスワードで認証できますか?または、sudoパスワードのない認証を完全に有効にできますか?

答え1

sudo管理するキーの知識と認証を関連付けることができます。ssh-agent。これは次のことで達成できます。ポリアクリルアミドそしてpam_ssh_agent_auth基準寸法。特に認証のために別々の鍵ペアを生成できますsudo。パスワードは、秘密鍵を暗号化するために使用されるパスワードです。

pam_ssh_agent_authモジュールを設定するには、次を追加します。/etc/pam.d/sudo 今後その他のauth指示include

auth       sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys

また、以下を追加してsudo環境変数が削除されないことを知らせる必要があります。SSH_AUTH_SOCK/etc/sudoersvisudo

Defaults    env_keep += "SSH_AUTH_SOCK"

次に、認証トークンとして機能するキーの公開部分を追加します/etc/security/authorized_keys-tスイッチを次に追加することもできます。ssh-addssh-agentデフォルトの動作を模倣するために、短い寿命のキーを追加するかsudo(最後の入力から一定時間が経過するとパスワード確認メッセージを表示する)、-cキーを使用して確認を認証するたびにスイッチを使用してパスワードをトリガーすることもできます。

Ubuntuのデフォルト値は次のとおりです。GNOMEキーチェーン私が知る限り、SSH鍵管理のためにキータイムアウト設定は現在許可されていません。。以下を追加すると、GNOME KeyringでSSHキー管理を完全に無効にできます~/.config/autostart/gnome-keyring-ssh.desktop

[Desktop Entry]
Type=Application
Name=SSH Key Agent
Comment=GNOME Keyring: SSH Agent
Exec=/usr/bin/gnome-keyring-daemon --start --components=ssh
OnlyShowIn=GNOME;Unity;MATE;
X-GNOME-Autostart-Phase=Initialization
X-GNOME-AutoRestart=false
X-GNOME-Autostart-Notify=true
X-GNOME-Autostart-enabled=false
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-keyring
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=3.10.1
NoDisplay=true
X-Ubuntu-Gettext-Domain=gnome-keyring

/etc/xdg/autostart/gnome-keyring-ssh.desktop主な違いは次のとおりです。

X-GNOME-Autostart-enabled=false

答え2

Ubuntuシステムでrootアカウントを有効にできる場合は、sudoユーザーパスワードを呼び出すのではなく、rootパスワードの入力を求めるように次のように設定できます/etc/sudoers(使用visudo)。

Defaults rootpw

Ubuntuはデフォルトでrootアカウントを無効にしますパスワードをロックしてください。有効にするには、新しいパスワードを設定してくださいroot

$ sudo passwd root

ルートパスワードを使用して認証を有効にしたい場合でも、sudoすべての内容を消去またはコメントアウトして、ローカルコンソールデバイスでルートログインを無効にできます。/etc/securetty。ただし、空の/ etc / securettyファイルはそうではありません。いいえOpenSSHやその他の影響を受けない手段を使用して、rootユーザーがリモートでログインするのを防ぎます。pam_securetty.so(例えばsu、、、、、、、)。 OpenSSH は、スタンザを介したルートログインを防ぐように特別に設定できますが、これを行う場合は、次の点に注意する必要があります。sudosshscpsftpPermitRootLogin no/etc/ssh/sshd_configその他の影響これはあなたの状況に関連している可能性があります。

答え3

次のようにsudoの動作を変更してパスワードの入力を軽減してください。

これはからのものですChromiumOSのヒントとコツページ:Sudoをより寛大にする

cd /tmp
cat > ./sudo_editor <<EOF
#!/bin/sh
echo Defaults \!tty_tickets > \$1          # Entering your password in one shell affects all shells 
echo Defaults timestamp_timeout=180 >> \$1 # Time between re-requesting your password, in minutes
EOF
chmod +x ./sudo_editor 
sudo EDITOR=./sudo_editor visudo -f /etc/sudoers.d/relax_requirements

何が行われたかわからない場合は、tty_tickets is now falseこれはすべてのttyで認証する必要がないことを意味します。 Timestamp_timeout is set to every 3 hoursつまり、3時間ごとにパスワードを入力するという意味です。パスワードを入力する時間と3時間の制限の間には、制限sudo some command時間が切れるまでパスワードを入力するように求められません。

relax_requirementこれでsudoを制御するために使用できます。利用可能なオプションは次のとおりです。Sudor マニュアル。太い部分を探すSudor オプション。私が説明したものに加えて、多くのオプションがあります。これを行うには、PAMなどを変更する必要はなく、PAMがあるかどうかにかかわらず、すべてのシステムで機能します。

答え4

/etc/sudoers選択したエディタを使用してファイルを編集したり、特定のユーザーがパスワードなしでコマンドを使用できるvisudoように行を実行して追加したりできます。sudoそれは次のとおりです。

user ALL = NOPASSWD : ALL

関連情報