![请以用户“ubuntu”而不是“root”身份登录](https://linux22.com/image/1166811/%E8%AF%B7%E4%BB%A5%E7%94%A8%E6%88%B7%E2%80%9Cubuntu%E2%80%9D%E8%80%8C%E4%B8%8D%E6%98%AF%E2%80%9Croot%E2%80%9D%E8%BA%AB%E4%BB%BD%E7%99%BB%E5%BD%95.png)
我在 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