質問: 共有キー.ssh / authorized_keysとsudoを連携させる方法は? .ssh/authorized_keysを設定し、pub/privateキーを使用して新しい「ユーザー」でログインできます...また、sudoersリストに「ユーザー」を追加しました...現在の問題は、私はsudoコマンドを実行しようとします。$ sudo cd /root 入力したパスワードの入力を求められますが、機能しません(設定した秘密鍵のパスワードを使用しています)また、私は使用してユーザーのパスワードを無効にしました$ passwd -l user 何が欠けていますか?どこかで私の最初の発言が誤解されています...私はシステムを強化しようとしています...最終的な目標は、単純なパスワード認証ではなく、pub/privateキーを使用してログインすることです。私はauthorized_keysファイルを介してそれらすべてを設定する方法を理解しました。さらに、ルートアカウントを介したサーバーログインを最終的に防止します。しかしその前に、2番目のユーザー(常にシステムにログインするユーザー)のためにsudoを動作させる必要があります。この2番目のユーザーについては、 "passwd -l user ...を介してユーザーをロックしない場合、通常のパスワードログインを禁止し、pub/private keyログインのみを強制したいのですが、キーを使用しない場合でも、通常のパスワードでサーバーに入ります。しかし、もっと重要私は、sudoに、パスワードが無効になっているユーザーとのpub/private keyセットアップを機能させる必要があります。編集: ok、わかったと思います(解決策):1)/ etc/ssh/sshd_configを調整してpasswordauthentication noを設定しました。これにより、sshパスワードのログインができなくなります(これを実行する前に、公開/秘密鍵が機能していることを確認してください)2)sudoersリストvisudoを調整して追加しましたroot all=(all) all dimas all=(all) nopasswd: all 3)rootはパスワードを持つ唯一のユーザーアカウントです。パスワードが設定されていない2つのユーザーアカウント "dimas"と "sherry"でテストしています(パスワードは空白、passwd -d user)上記は本質的に誰もがパスワードでシステムにログインすることを防ぎます(公開/秘密鍵を設定する必要があります)。さらに、sudoersリストのユーザーには管理機能があります。また、別のアカウントにsuすることもできます。したがって、基本的に「dimas」はsudo su sherryを実行できますが、「dimasはsu sherryを実行できません。同様に、sudoersリストにないユーザーはsu userまたはsudo su userを実行できません。[〜#〜] note [〜#〜]上記は機能しますが、セキュリティが不十分と見なされます。 「dimas」または「sherry」ユーザーとしてコードにアクセスできるすべてのスクリプトは、sudoを実行してrootアクセスを取得できます。設定に関係なくリモートユーザーがログインできるようにするsshのバグ、firefoxなどでのリモートコード実行、またはユーザーとして不要なコードを実行できるようにするその他の欠陥が、rootとして実行できるようになりました。 sudoは常にパスワードを要求する必要があります。そうしないと、他のユーザーの代わりにrootとしてログインすることもできます。
回答: やりたいことは可能ですが、 pam-ssh-agent-auth というpamモジュールをコンパイルする必要があるため、ある程度の経験が必要になります。プロセスはかなり単純です:$ 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 追加(@include行のすぐ上):**auth [success=2 default=ignore] pam_ssh_agent_auth.so file=~/.ssh/authorized_keys** @include common-auth @include common-account