Я могу ssh
в удаленный экземпляр EC2 с ec2-user
и пара ключей в учетной записи EC2 с привилегиями root (sudo).
Как я могу вручную создать другую учетную запись пользователя, не являющегося пользователем ec2, добавить ключ SSH и добавить sudo
разрешения этому пользователю?
Создайте учетную запись пользователя
Сначала создайте учетную запись пользователя, используя стандартный Linux / UNIX useradd
команда:
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 (найденный во всех основных дистрибутивах) для добавления разрешений sudo с ролью «ВСЕ» для учетной записи пользователя.
echo "$NEWUSER ALL=(ALL) NOPASSWD: ALL" | sudo tee "/etc/sudoers.d/$NEWUSER" >/dev/null
(Отказ от ответственности: я написал первый выпуск инструмент что автоматизирует это на Userify.)