我可以使用具有 root(sudo)权限的 EC2 帐户中的密钥对ssh
进入远程 EC2 实例。ec2-user
如何手动创建另一个非 ec2 用户的用户帐户、添加 SSH 密钥并sudo
为该用户添加权限?
答案1
创建用户帐户
首先,使用标准 Linux/UNIXuseradd
命令创建用户帐户:
NEWUSER='newusername'
SSHPUBKEY='ssh-ed25519 AAAA..xyz jamieson@desktop'
sudo useradd -m $NEWUSER
将 SSH 公钥添加到该用户的 authorized_keys 文件中
将目录的所有权重新交给用户至关重要,否则 SSH 守护进程将拒绝由root
而非拥有的文件$NEWUSER
。(另一种方法是使用ssh-copy-id
,但这种方法可以在同一个登录会话中完成。)
sudo mkdir /home/$NEWUSER/.ssh/
echo "$SSHPUBKEY" | sudo tee -a /home/$NEWUSER/.ssh/authorized_keys >/dev/null
sudo chown -R $NEWUSER:$NEWUSER /home/$NEWUSER/.ssh
为该用户设置 sudo 权限
这使用标准 /etc/sudoers.d 目录(在所有主要发行版中都可以找到)为用户帐户添加具有“ALL”角色的 sudo 权限。
echo "$NEWUSER ALL=(ALL) NOPASSWD: ALL" | sudo tee "/etc/sudoers.d/$NEWUSER" >/dev/null