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

Alo*_*lon 9 ssh permissions login amazon-ec2 18.04

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

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

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

然后我跑了:

rsync --archive --chown=newuser:newuser ~/.ssh /home/newuser
Run Code Online (Sandbox Code Playgroud)

为了让新用户直接连接到服务器。

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

使用用户名“newuser”。

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

请以用户“ubuntu”而非用户“root”的身份登录。

我从 MobaXterm 和 PuTTY 得到同样的错误。

Alo*_*lon 10

正如 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"
Run Code Online (Sandbox Code Playgroud)

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

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


小智 6

在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"
Run Code Online (Sandbox Code Playgroud)

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

保存文件,然后重试。


小智 5

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

例子:

不工作:

$ sudo ssh -i *path/xxxxx.pem* n.n.n.n
Please login using xxxxx
Run Code Online (Sandbox Code Playgroud)

在职的:

$ 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)
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助!