![如何在 EC2 实例上创建用户并添加 SSH 密钥?](https://linux22.com/image/735262/%E5%A6%82%E4%BD%95%E5%9C%A8%20EC2%20%E5%AE%9E%E4%BE%8B%E4%B8%8A%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7%E5%B9%B6%E6%B7%BB%E5%8A%A0%20SSH%20%E5%AF%86%E9%92%A5%EF%BC%9F.png)
我可以使用具有 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