
Oracle Cloud の事前生成されたキー ペアを使用すると、パスワードなしで Linux サーバーにログインでき、パスワードなしで sudo も実行できることに気付きました。私が知る限り、この状況を他の場所で再現することはできません。
Oracle Cloud と他のクラウドの違いは、OOBE でユーザーも生成されることですubuntu
(Ubuntu の場合。Oracle Linux の場合、デフォルトのユーザーは ですopc
。私が使用しているディストリビューションに関係なく、opc
ユーザーは必ず生成されます)。Oracle Cloud サーバーは、デフォルトではユーザーを使用しないようです。そこで、 sudo ユーザーがインストールされているroot
ことに気付きました。そのソフトウェアが sudo 認証を処理しているのでしょうか? (ただし、他の場所も確認しましたが、これらのファイルはバニラのままです。)Oracle Cloud Agent
opc
/etc/pam.d
他のサイトでは、PAM モジュールを設定するように言われましたlibpam-ssh-agent-auth
が、これは何年も更新されていない古いプロジェクトです。多くのサーバーで試しましたが、動作しません。(多くのディストリビューションでは、この PAM モジュールをパッケージ マネージャーから削除していませんが)
これを実現する方法を教えていただければ幸いです。
答え1
須藤
sudoグループ(または同等のグループ)のユーザーを許可するには、sudo設定を変更します。/etc/sudoers (ルートとしてvisudoを使用する)
%sudo ALL=(ALL) NOPASSWD: ALL
ユーザーは sudo グループのメンバーである必要があることに注意してください。
または特定のユーザーのみ:
username_here ALL = (ALL) NOPASSWD: ALL
SSHキー
パスワードなしでユーザーとしてログインできるようにするには、ログインするアカウントに公開 SSH キーを追加する必要があります。
これを行う適切な方法はssh-copy-idを使用することです
ssh-copy-id [email protected]
これにより、指定されたユーザーのホームフォルダに公開鍵が追加されます。.ssh/承認キー
必要に応じて手動でコピーすることもできます。このファイル(ローカルマシン)の出力を.ssh/承認キーユーザーのファイル(サーバー上):
cat ~/.ssh/id_rsa.pub
答え2
通常、クラウドイメージはcloudinit
起動時に、一意のインスタンスの汎用イメージを初期化してカスタマイズします。
Cloudnit は、一般的なタスクを実行できますし、通常は実行しますが、通常は特定のクラウド プロバイダーのメタデータ サービスと対話してベンダー データやユーザー データを読み込むようにも構成されます。このメカニズムにより、通常、クラウド プロバイダーにアップロードした個人の公開 SSH キーがインスタンスにプロビジョニングされ、関連付けられた秘密キーを使用してログインできるようになります。
Cloud init は、ユーザーのデプロイ、新しくデプロイされたユーザーの SSH キーやパスワード、sudo 権限の設定など、さまざまな操作を実行できます。
独自のユーザーデータを有効にして、cloud init の動作を (さらに) カスタマイズする方法は、クラウド ベンダーによって異なります。