Возможно, странный вопрос, но я не эксперт по сценариям оболочки.
Я настраиваю сервер Ubuntu, начиная с root. Я хотел бы неинтерактивно настроить новую учетную запись пользователя, удалить логин root и настроить ключ ssh - все в одном скрипте.
Что у меня есть на данный момент:
# Reconfigure sshd to disable root login
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# add user with no password (vagrant copies root ssh key)
useradd new-user -d /home/new-user
echo 'new-user ALL=(ALL:ALL) ALL' >> /etc/sudoers
mkdir -p /home/new-user/.ssh
cp /root/.ssh/authorized_keys /home/new-user/.ssh/authorized_keys
chown new-user:new-user /home/new-user/.ssh/authorized_keys
# restart ssh
service ssh reload
Это работает, но теперь я немного обеспокоен тем, что мне не хватает какой-то лазейки в безопасности или что это плохой способ решения задачи.
Есть ли более простой способ добиться этого?
Спасибо.
как это:
#!bin/sh
# $Id$
# sshd
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
service ssh reload
# sudo
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel
# user
useradd new-user -d /home/new-user
mkdir /home/new-user/.ssh
cp /root/.ssh/authorized_keys /home/new-user/.ssh/authorized_keys
chown -R new-user:new-user /home/new-user/.ssh/
На мой взгляд, это выглядит достаточно хорошо (больше опытных людей, пожалуйста, поправьте меня!), Всего несколько предостережений.
Вам не нужно перенастраивать sshd_config для каждого пользователя, и было бы лучше вручную настроить авторизованные ключи для пользователя, поскольку каждый пользователь может иметь разные ключи (но поведение, которое вы закодировали, может быть тем, которое вы хотите).
Вам также не нужно перезапускать ssh после создания пользователя.