2015-02-09 100 views
10

我試圖使用PostgreSQL的命令sudo -i -u postgres,並且Google Compute Engine虛擬機要求我爲我的帳戶(而不是根目錄)輸入密碼。如何獲取sudo的密碼

由於我從未發出過密碼,而且我總是通過SSH密鑰登錄到我的服務器,所以我不確定密碼是什麼,如何重置密碼或找到密碼。

請告訴我在哪裏可以得到我的密碼?

回答

5

https://cloud.google.com/compute/docs/instances

的實例創建器和使用元數據 sshKeys值添加的任何用戶都自動管理員帳戶,與 到無需密碼運行須藤的能力。

所以你不需要那個不存在的密碼 - 你需要「使用元數據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 

,或者您可以使用谷歌開發者控制檯類似用途看https://cloud.google.com/compute/docs/console#sshkeys如果你願意說。

26

要成爲一個GCE VM另一個非根用戶,首先通過無密碼sudo成爲root(因爲這是如何sudo上GCE VM鏡像構造):

sudo su - 

,然後切換到用戶你想成爲或運行一個命令作爲另一種用途,例如,在你的情況下,這是:

sudo -i -u postgres 
+0

如果我想更改我的默認shell? – user 2016-09-28 15:29:00

+0

@user - 與在相應的Linux發行版上執行操作的方式相同,例如使用['chsh'](https://linux.die.net/man/1/chsh)。這不是GCE特有的。 – 2016-09-30 01:19:39

+1

在GCE中,您使用RSA密鑰登錄,而不使用密碼。 google compute vm AFAIK中沒有用戶密碼。 – user 2016-09-30 12:57:22