web-dev-qa-db-ja.com

sudoのパスワードを取得する方法

PostgreSQLでSudo -i -u postgresコマンドを使用しようとしていますが、Google Compute Engine VMが私のアカウント(rootではない)のパスワードを要求しています。

パスワードを発行したことがなく、常にSSHキーを介してサーバーにログインしているので、パスワードが何であるか、どのようにリセットできるか、どこにあるかわかりません。

パスワードを入手できる場所を教えてください。

15
Allen

GCE VMで別の非rootユーザーになるには、まずパスワードなしのrootを使用してSudoになります(GCEでSudoが構成されているためですVM画像):

Sudo su -

次に、なりたいユーザーに切り替えるか、別の用途としてコマンドを実行します。たとえば、次のような場合です。

Sudo -i -u postgres
29
Misha Brukman

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 を参照してください。

5
Alex Martelli

概要

VMの作成時に、[キーデータ全体を入力]ボックスでsshユーザーを指定します。

細部

  1. ssh鍵ペアを生成し、公開鍵を特定します:
    • ssh-keygenの場合、「。pub」で終わるファイル
    • puTTYgenの場合、ボックスのテキスト「貼り付けの公開キー...」

スペースで区切られたすべての1行のフィールドに注意してください: "protocol key-blob username"。ユーザー名については、Windowsのユーザー名または「rsa-key-20191106」のような文字列を見つけることができます。その文字列を、選択したLinuxユーザー名に置き換えます。

  1. 「キーデータ全体を入力してください」ボックスに公開キー情報を貼り付けます。

  2. 3番目のフィールドを、VMで作成する実際のユーザーに変更します。たとえば、「gcpuser」の場合:

    ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjUIG3Z8wKWf+TZQ7nVQzB4s8U5rKGVE8NAt/LxlUzEjJrhPI5m+8llLWYY2PH4atZzuIYvYR0CVWhZvZQzLQc33vDOjQohxV9Lg26MwSqK+bj6tsr9ZkMs2zqNbS4b2blGnr37+dnwz+FF7Es9gReqyPxL9bn5PU/+mK0zWMHoZSEfUkXBrgqKoMQTsYzbMERluByEpZm9nRJ6ypvr9gufft9MsWC2LPhEx0O9YDahgrCsL/yiQVL+3x00DO9sBOXxi8kI81Mv2Rl4JSyswh1mzGAsT1s4q6fxtlUl5Ooz6La693IjUZO/AjN8sZPh03H9WiyewowkhMfS0H06rtGQ== gcpuser
    
  3. vMを作成します。 (例えば、Debian)

  4. VMに接続する

    • sshまたはPuTTYから直接(ブラウザウィンドウではない)
    • 秘密鍵を使用する
    • ユーザーを指定する
  5. 公開鍵が存在することに注意してください。

    gcpuser@instance-1:~/.ssh$ cat authorized_keys
    # Added by Google
    ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjUIG3Z8wKWf+TZQ7nVQzB4s8U5rKGVE8NAt/LxlUzEjJrhPI5m+8llLWYY2PH4atZzuIYvYR0CVWhZvZQzLQc33vDOjQohxV9Lg26MwSqK+bj6tsr9ZkMs2zqNbS4b2blGnr37+dnwz+FF7Es9gReqyPxL9bn5PU/+mK0zWMHoZSEfUkXBrgqKoMQTsYzbMERluByEpZm9nRJ6ypvr9gufft9MsWC2LPhEx0O9YDahgrCsL/yiQVL+3x00DO9sBOXxi8kI81Mv2Rl4JSyswh1mzGAsT1s4q6fxtlUl5Ooz6La693IjUZO/AjN8sZPh03H9WiyewowkhMfS0H06rtGQ== gcpuser
    
  6. あなたはグループ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)
    
  7. パスワードなしでrootにSudo

    gcpuser@instance-1:~$ Sudo -i -u root
    root@instance-1:~#
    
  8. Sudoersファイルに注意してください。

    root@instance-1:~# cat /etc/sudoers.d/google_sudoers
    %google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
    

結論

「キーデータ全体を入力してください」でユーザー名を指定すると、次のような結果になります。

  1. 仮想マシンでユーザーを作成します。
  2. 〜/ .sshにキーをアップロードする
  3. パスワードなしのSudoグループのメンバーシップ
0