从Azure VM上的Azure库安装Ubuntu Server LTS 14.04。使用我的密码以Azure创建的标准“azureuser”登录。更改root密码:
sudo passwd root
如果我尝试以“root”身份登录:
Access denied
我错过了什么?是的,密码是正确的。
默认情况下,Ubuntu会禁用root帐户。由于root是godmode,因此禁用它意味着所有使用自动脚本试图破解root帐户的黑客都在浪费时间。
我强烈建议不要这样做。 (有很多原因,这里有一些:https://askubuntu.com/questions/16178/why-is-it-bad-to-login-as-root)然而,这样做的步骤是Over on askubuntu.com
根据该页面,要解锁root帐户,您必须执行sudo passwd -u root
。要重新锁定root帐户,请使用sudo passwd -l root
重申一下:这有点糟糕。更好的解决方案是创建一个只有在您需要的范围内具有无限权限的新用户。根是神模;如果你搞砸了一些对你不好的事情。另一方面,范围的提升用户只能破坏它可以访问的内容...而不是整个系统。
只需运行sudo -s
,您将获得根终端。
使用SSH进入Azure VM ...
首先,您需要启用root帐户:
#sudo passwd root
然后,您需要为ssh编辑文件/ etc / ssh / sshd_config启用root登录(Azure VM中的默认值为PermitRootLogin,无密码,因此您需要更改/注释它):
...
#PermitRootLogin without-password
PermitRootLogin yes
...
最后,您需要重新加载/重新启动ssh服务:
#sudo service ssh reload
做sudo <command>
更容易。那么你没有超级用户的完整终端。这将只使用root权限执行命令。见this article。
这是一个老帖子,但有时会发生。这是我研究后解决的问题。
样本日志
$ azure vm extension set hm hm CustomScript Microsoft.Azure.Extensions 2.0 --auto-upgrade-minor-version -i '{"commandToExecute": "cp /tmp/sudoers.org /etc/sudoers"}' info: Executing command vm extension set
+ Looking up the VM "hm"
+ Installing extension "CustomScript", VM: "hm" info: vm extension set command OK
对于macOS用户,这里是简单的步骤。 (至少你需要安装节点)
npm install -g azure-cli
azure login
azure config mode arm
或asm,取决于您的VM
azure vm list
如果没有列出VM,则更改模式
将sudoers文件从其他机器复制到目标机器的/tmp/sudoers.default
备用sudoers
azure vm extension set hm hm CustomScript Microsoft.Azure.Extensions 2.0 --auto-upgrade-minor-version -i '{"commandToExecute": "cp /etc/sudoers /tmp"}'
将默认的sudoers复制到/ etc / sudoers
azure vm extension set hm hm CustomScript Microsoft.Azure.Extensions 2.0 --auto-upgrade-minor-version -i '{"commandToExecute": "cp /tmp/sudoers.default /etc/sudoers"}'
我无法得到任何其他答案为我工作,但this回答适用于我的情况。
对于那些懒得点击链接的人:
ssh -i KEYPAIR.pem ubuntu@HOSTNAME 'sudo cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'