如果您需要在Linux实例上新建普通用户,并使用该用户通过SSH密钥对连接Linux实例,以提高系统的安全性和便于权限管理,则您只需要登录Linux实例并将用于保存公钥信息的~/.ssh/authorized_keys文件保存到您自建用户的.ssh目录下即可。
工作原理
在创建ECS实例时,支持设置登录用户为root或ecs-user(部分镜像暂不支持ecs-user,具体以实例购买页面为准)。当您为ECS实例绑定SSH密钥对后,公钥信息会保存在~/.ssh/authorized_keys文件中,您可以直接使用root或ecs-user通过密钥对登录ECS实例。更多信息,请参见通过密码或密钥认证登录Linux实例或通过密钥认证登录Linux实例。
当您在Linux实例上新建一个普通用户时,该用户目录下无.ssh/authorized_key文件,因此,您无法使用该用户通过SSH密钥对登录Linux实例。此时,您只需要将~/.ssh/authorized_keys文件拷贝到该用户的.ssh目录下,即可使用您已保存的私钥文件让该用户通过SSH密钥对登录Linux实例。
更多密钥对信息,请参见SSH密钥对概述。
前提条件
Linux实例已绑定密钥对。具体操作,请参见绑定SSH密钥对。
操作步骤
本文以在Alibaba Cloud Linux 3.2104 LTS 64位操作系统的Linux实例上新建user1用户,然后使用user1用户通过SSH密钥对登录Linux实例为例进行说明,具体操作步骤如下。
远程连接待登录的ECS实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行如下命令,创建用户并查看该用户的家目录。
重要必须使用root用户才能创建新用户。如果您使用创建实例设置的ecs-user登录Linux实例,则您需要先执行
sudo su -
命令切换到root用户后,再执行本操作。useradd user1 ls /home/
执行如下命令,切换到user1用户目录并查看目录路径。
su - user1 pwd
执行如下命令,创建密钥对存放目录.ssh并为该目录授权。
mkdir .ssh chmod 700 .ssh
执行
exit
命令,退出user1用户。默认切换到root用户。
执行如下命令,拷贝authorized_keys文件到user1用户的.ssh文件目录,并进入user1用户的.ssh目录。
说明如果您创建实例时设置的登录名为ecs-user,则authorized_keys文件路径为/home/ecs-user/.ssh。
cp /root/.ssh/authorized_keys /home/user1/.ssh/ cd /home/user1/.ssh
执行
ls -al
命令,查看authorized_keys文件所属用户和组。如果所属组不为user1,则执行
chown user1:user1 authorized_keys
命令修改所属组。使用新建用户远程连接目标Linux实例。
具体操作,请参见通过密钥认证登录Linux实例或通过密码或密钥认证登录Linux实例。当出现如下提示时,表示使用user1用户通过密钥对成功登录目标Linux实例。