2
SSHを使用したパスワードレスアカウントへの一貫した安全なアプローチ
場合によっては、パスワードのないサーバーが好きであることを認めなければなりません。一般的なサーバーは、物理的にアクセスできるすべてのユーザーに対して脆弱です。そのため、場合によっては物理的にロックしてから、物理的なアクセスを信頼することが実用的です。 基本概念 理論的には、このようなサーバーに物理的にアクセスする場合root、ログインとして入力するだけでパスワードなしで管理タスクを実行でき、パスワードを要求されることはありません。同じことがユーザーアカウントにも当てはまりますが、実際には物理的にアクセスすることはありません。したがって、(時々)ローカルアクセスにシステムパスワードは必要ありません。 管理またはユーザーアカウントのいずれかでサーバーにリモートでアクセスする場合、常にSSH秘密キーを使用することを期待しています。作成したばかりのアカウントにSSHキーを設定するのは非常に簡単なので、(通常の)リモートアクセスにシステムパスワードは必要ありません。 # user=... # # useradd -m "$user" # sudo -i -u "$user" $ keyurl=... $ $ mkdir -p .ssh $ curl -o .ssh/authorized_keys "$keyurl" 結論は理論的には、我々はneeedいないだろう、ということですどのようなユースケースのためのシステムパスワードを。そこで問題は、システムとユーザーアカウントをどのように構成して、それを一貫性のある安全な方法で実現するかです。 ローカルアクセスの詳細 パスワードなしでrootアカウントにローカルにアクセスできるようにするにはどうすればよいですか?passwd -dルートアクセスを許可しすぎて、権限のないユーザーが無料でルートに切り替えることができるため、使用できないと思います。これは間違っています。passwd -lログインできないため使用できません。 ローカルアクセスは、ローカルキーボードを使用したアクセスのみに関することに注意してください。したがって、有効なソリューションでは、ユーザーの切り替えを許可してはなりません(suまたはを使用sudo)。 リモートアクセスの詳細 最近まで上記のソリューションは機能していましたが、SSHはロックされたユーザーアカウントのチェックを開始しました。passwd -d同じ理由で使用できない可能性があります。それがpasswd -u何をもたらすのか不平を言っているだけなので、私たちは使用できませんpasswd -d。 この部分にダミーのパスワードを使用する回避策があります。 user=... echo -ne "$user:`pwgen 16`\n" | chpasswd SSHでロックされたアカウントチェックを完全にオフにすることも可能かもしれませんが、ロックされたアカウントのサポートを保持し、それらのロックを解除できる方がよいでしょう。 最終ノート 私が興味を持っているのは、パスワードなしで、ローカルアカウントと、rootを含むすべてのアカウントにリモートでログインできるソリューションです。一方、ソリューションは、特にリモートユーザーがルートアカウントまたは他のユーザーのアカウントにアクセスできるようにすることによって、明示的に説明されている方法を除き、セキュリティに影響を与えてはなりません。ソリューションは、間接的にセキュリティ問題を引き起こさないように、十分に堅牢でなければなりません。 …