请以用户“ubuntu”而不是“root”身份登录

请以用户“ubuntu”而不是“root”身份登录

我在 EC2 上启动了一个 Ubuntu 18 实例。

我使用 ubuntu 用户连接到服务器。

我创建了一个名为 newuser 的新用户并将其添加到 sudo 组。

然后我跑了:

rsync --archive --chown=newuser:newuser ~/.ssh /home/newuser

以便让新用户直接连接到服务器。

当我尝试使用新用户连接到服务器时出现以下错误:

使用用户名“newuser”。

使用公钥“imported-openssh-key”进行身份验证

请以用户“ubuntu”而不是“root”身份登录。

我从 MobaXterm 和 PuTTY 都收到相同的错误。

答案1

正如 tritium_3 所建议的,我必须编辑 .ssh/authorized_keys,以删除以下文本:

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';echo;sleep 10"

并保留其后的 ssh-rsa 和密钥。

但是,该rsync命令已将文件复制到新用户,因此我必须编辑 /home/newuser/.ssh/authorized_keys 下的文件,而不是 /root/.ssh/authorized_keys。

答案2

authorized_keys里面有一个命令如下。

cat /root/.ssh/authorized_keys 
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';echo;sleep 10"

删除此行并保留其后的 ssh-rsa 和密钥。

保存文件然后重试。

答案3

解决此问题的正确方法是使用 ssh 的-l标志。而不是篡改警告消息。

例子:

不工作:

$ sudo ssh -i *path/xxxxx.pem* n.n.n.n
Please login using xxxxx

在职的:

$ sudo ssh -i keys/xxxxxx n.n.n.n -l ubuntu
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-1021-aws x86_64)

笔记:您正在提升对文件的执行访问权限.pem。这意味着您可能是“root”。SSH 连接要求您登录用那台机器用户名在本例中为“ubuntu”。因此,传递“-l”标志允许我们设置该值。

希望这可以帮助!

答案4

因为它一直烦我所以我创建了这个单行代码:

# sed -i -e 's/.*exit 142" \(.*$\)/\1/' /root/.ssh/authorized_keys

相关内容