PostgreSQLでSudo -i -u postgres
コマンドを使用しようとしていますが、Google Compute Engine VMが私のアカウント(rootではない)のパスワードを要求しています。
パスワードを発行したことがなく、常にSSHキーを介してサーバーにログインしているので、パスワードが何であるか、どのようにリセットできるか、どこにあるかわかりません。
パスワードを入手できる場所を教えてください。
GCE VMで別の非rootユーザーになるには、まずパスワードなしのroot
を使用してSudo
になります(GCEでSudo
が構成されているためですVM画像):
Sudo su -
次に、なりたいユーザーに切り替えるか、別の用途としてコマンドを実行します。たとえば、次のような場合です。
Sudo -i -u postgres
https://cloud.google.com/compute/docs/instances ごと
メタデータのsshKeys値を使用して追加されたインスタンスの作成者とユーザーは、自動的にアカウントの管理者になり、パスワードを要求せずにSudoを実行できます。
そのため、存在しないパスワードは必要ありません。「メタデータのsshKeys値を使用して追加する」必要があります。それを行うための標準的な方法、そして私はその同じページから引用します:
$ echo user1:$(cat ~/.ssh/key1.pub) > /tmp/a
$ echo user2:$(cat ~/.ssh/key2.pub) >> /tmp/a
$ gcloud compute project-info add-metadata --metadata-from-file sshKeys=/tmp/a
または、同様の目的でGoogle Developers Consoleを使用できます。必要に応じて、 https://cloud.google.com/compute/docs/console#sshkeys を参照してください。
VMの作成時に、[キーデータ全体を入力]ボックスでsshユーザーを指定します。
スペースで区切られたすべての1行のフィールドに注意してください: "protocol key-blob username"。ユーザー名については、Windowsのユーザー名または「rsa-key-20191106」のような文字列を見つけることができます。その文字列を、選択したLinuxユーザー名に置き換えます。
「キーデータ全体を入力してください」ボックスに公開キー情報を貼り付けます。
3番目のフィールドを、VMで作成する実際のユーザーに変更します。たとえば、「gcpuser」の場合:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjUIG3Z8wKWf+TZQ7nVQzB4s8U5rKGVE8NAt/LxlUzEjJrhPI5m+8llLWYY2PH4atZzuIYvYR0CVWhZvZQzLQc33vDOjQohxV9Lg26MwSqK+bj6tsr9ZkMs2zqNbS4b2blGnr37+dnwz+FF7Es9gReqyPxL9bn5PU/+mK0zWMHoZSEfUkXBrgqKoMQTsYzbMERluByEpZm9nRJ6ypvr9gufft9MsWC2LPhEx0O9YDahgrCsL/yiQVL+3x00DO9sBOXxi8kI81Mv2Rl4JSyswh1mzGAsT1s4q6fxtlUl5Ooz6La693IjUZO/AjN8sZPh03H9WiyewowkhMfS0H06rtGQ== gcpuser
vMを作成します。 (例えば、Debian)
VMに接続する
公開鍵が存在することに注意してください。
gcpuser@instance-1:~/.ssh$ cat authorized_keys
# Added by Google
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjUIG3Z8wKWf+TZQ7nVQzB4s8U5rKGVE8NAt/LxlUzEjJrhPI5m+8llLWYY2PH4atZzuIYvYR0CVWhZvZQzLQc33vDOjQohxV9Lg26MwSqK+bj6tsr9ZkMs2zqNbS4b2blGnr37+dnwz+FF7Es9gReqyPxL9bn5PU/+mK0zWMHoZSEfUkXBrgqKoMQTsYzbMERluByEpZm9nRJ6ypvr9gufft9MsWC2LPhEx0O9YDahgrCsL/yiQVL+3x00DO9sBOXxi8kI81Mv2Rl4JSyswh1mzGAsT1s4q6fxtlUl5Ooz6La693IjUZO/AjN8sZPh03H9WiyewowkhMfS0H06rtGQ== gcpuser
あなたはグループgoogle-sudoersにいることに注意してください
gcpuser@instance-1:~/.ssh$ id
uid=1000(gcpuser) gid=1001(gcpuser) groups=1001(gcpuser),4(adm),30(dip),44(video),46(plugdev),1000(google-sudoers)
パスワードなしでrootにSudo
gcpuser@instance-1:~$ Sudo -i -u root
root@instance-1:~#
Sudoersファイルに注意してください。
root@instance-1:~# cat /etc/sudoers.d/google_sudoers
%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
「キーデータ全体を入力してください」でユーザー名を指定すると、次のような結果になります。