Google compute engine 如何获取sudo的密码
我正在尝试对PostgreSQL使用命令Google compute engine 如何获取sudo的密码,google-compute-engine,sudo,Google Compute Engine,Sudo,我正在尝试对PostgreSQL使用命令sudo-I-u postgres,而Google计算引擎VM正在询问我的帐户密码(不是root) 由于我从未发布过密码,而且我总是通过SSH密钥登录到我的服务器,所以我不确定密码是什么,如何重置密码,或者在哪里可以找到密码 请告诉我在哪里可以获得密码?Per 实例创建者和使用元数据添加的任何用户 sshKeys值是帐户的自动管理员,具有 无需密码即可运行sudo的功能 因此,您不需要那个不存在的密码——您需要“使用元数据sshKeys值添加”!这样做的标
sudo-I-u postgres
,而Google计算引擎VM正在询问我的帐户密码(不是root)
由于我从未发布过密码,而且我总是通过SSH密钥登录到我的服务器,所以我不确定密码是什么,如何重置密码,或者在哪里可以找到密码
请告诉我在哪里可以获得密码?Per
实例创建者和使用元数据添加的任何用户
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开发者控制台,看看您是否愿意这样做。要成为GCE虚拟机上的另一个非root用户,首先通过无密码的
sudo
成为root
(因为这是在GCE虚拟机映像上配置sudo
的方式):
然后切换到您想要成为的用户,或作为另一种用途运行命令,例如,在您的情况下,即:
sudo -i -u postgres
总结
创建VM时,在“输入整个密钥数据”框中指定ssh用户
细节
- 如果是ssh keygen,则为以“.pub”结尾的文件
- 如果是PuTTYgen,则“用于粘贴的公钥…”框中的文本
- 直接从ssh或PuTTY(而不是浏览器窗口)
- 使用私钥
- 指定用户
gcpuser@instance-1:~/.ssh$ cat authorized_keys
# Added by Google
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjUIG3Z8wKWf+TZQ7nVQzB4s8U5rKGVE8NAt/LxlUzEjJrhPI5m+8llLWYY2PH4atZzuIYvYR0CVWhZvZQzLQc33vDOjQohxV9Lg26MwSqK+bj6tsr9ZkMs2zqNbS4b2blGnr37+dnwz+FF7Es9gReqyPxL9bn5PU/+mK0zWMHoZSEfUkXBrgqKoMQTsYzbMERluByEpZm9nRJ6ypvr9gufft9MsWC2LPhEx0O9YDahgrCsL/yiQVL+3x00DO9sBOXxi8kI81Mv2Rl4JSyswh1mzGAsT1s4q6fxtlUl5Ooz6La693IjUZO/AjN8sZPh03H9WiyewowkhMfS0H06rtGQ== gcpuser
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)
gcpuser@instance-1:~$ sudo -i -u root
root@instance-1:~#
root@instance-1:~# cat /etc/sudoers.d/google_sudoers
%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
如果我想更改我的默认shell?@user-与您在适当的Linux发行版上所做的相同,例如,使用。这不是特定于GCE的。在GCE中,您使用RSA密钥登录,而不是使用密码。google compute vm AFAIK中没有用户密码。@user-由于您没有密码
sudo
访问权限,您可以运行:sudo chsh-s/bin/dash$user
-我刚刚测试过,它可以工作。@user-这解释了chsh
总是要求密码的原因,以及如何在更改自己的shell时使其不需要。另外,这篇文章的链接解释了如何只允许在每个用户的基础上,而不是在全球范围内为每个人提供此功能。希望这有帮助。
gcpuser@instance-1:~$ sudo -i -u root
root@instance-1:~#
root@instance-1:~# cat /etc/sudoers.d/google_sudoers
%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL