Создайте нового пользователя SSH на Сервере Ubuntu

Просто созданный новый виртуальный сервер Ubuntu и я находимся в процессе укрепления его для производственного использования. У меня в настоящее время есть корневая учетная запись. Я хочу сделать следующее:

  • Создайте нового пользователя (давайте назовем их jim для остальной части этого). Я хочу, чтобы у них был a /home/ каталог.
  • Дать jim Доступ SSH.
  • Позволить jim кому: su базироваться, но не работать sudo операции.
  • Выключите корневой доступ SSH.
  • Переместите SSHd прочь в нестандартный порт, чтобы помочь остановить грубые нападения.

Моя проблема связана с первыми двумя объектами. Я уже нашел useradd но по некоторым причинам, я не могу войти в систему в качестве пользователя созданный с ним по SSH. Я должен победить SSHd для разрешения этого?

105
задан 8 December 2010 в 09:11

8 ответов

Редактирование (как корень) /etc/ssh/sshd_config. Добавьте следующее к нему:

Port 1234
PermitRootLogin no
AllowUsers jim

Port 1234 причины SSH для слушания на порте 1234. Можно использовать любой неиспользуемый порт от 1 до 65 535. Рекомендуется выбрать привилегированный порт (порт 1-1024), который может только использоваться корнем. Если Ваш демон SSH прекращает работать по некоторым причинам, приложение жулика не может прервать соединение.

PermitRootLogin запрещает прямой корневой вход в систему.

AllowUsers jim позволяет пользователю jim входить в систему через SSH. Если Вы не должны входить в систему отовсюду, можно сделать это более безопасным путем ограничения jim к IP-адресу (замените 1.2.3.4 фактическим IP-адресом):

AllowUsers jim@1.2.3.4

Изменения в конфигурационном файле /etc/ssh/sshd_config сразу не применяются, для перезагрузки конфигурации, выполняются:

sudo service ssh reload
99
ответ дан 22 November 2019 в 23:01

Будут подсказки в /var/log/auth.log поскольку, почему SSH (или PAM) отклоняет попытку входа в систему. Дополнительные подсказки могут быть найдены при помощи -v опция с ssh клиентом. Несколько общих ситуаций, некоторые упомянутые в других ответах:

  • учетная запись пользователя испытывает недостаток в пароле или иначе отключена (см. man passwd, попытайтесь изменить пароль или проверить содержание /etc/shadow).
  • /etc/ssh/sshd_config настроен для запрещения входа в систему (DenyUsers, AllowUsers, PasswordAuthentication, PubkeyAuthentication, UsePAM и т.д. посмотрите man sshd_config).
  • оболочка пользователя не перечислена в /etc/shells.
  • различные проблемы разрешения на каталогах или файлах, связанных с операцией SSH: /etc/ssh, /home/jim/.ssh, /home/jim/.ssh/*, и т.д.

Я также рекомендовал бы использовать adduser (вместо useradd) для добавления новых пользователей; это является немного более дружественным о различных настройках учетной записи по умолчанию.

Пока пользователь не является частью admin группа, они не смогут к sudo базироваться. Чтобы они использовали su, необходимо будет установить пароль root (passwd root), после которого я рекомендую установить PermitRootLogin=no в /etc/ssh/sshd_config.

13
ответ дан 22 November 2019 в 23:01

Я мог быть неправым, но я всегда должен устанавливать демона сервера, прежде чем я смогу соединиться (По крайней мере, на рабочем столе) ssh, установлен по умолчанию, но это - просто клиент

эта команда устанавливает сервер

sudo apt-get install openssh-server

Можно изменить порт и остановить корневой вход в систему путем редактирования

/etc/ssh/sshd_config

Это требует, чтобы Вы перезапустили сервис все же.

sudo service ssh restart

11
ответ дан 22 November 2019 в 23:01

У Jim не будет доступа SSH, пока Вы не установили пароль. Как корень выполнитесь:

grep -i "jim" /etc/shadow | awk -F':' '{ print $2 }'

Если эта команда возвращает a"!" символ затем входит в систему, отключен для этой учетной записи. Выполнение passwd jim поскольку корень предложит Вам новую и подтвержденную строку пароля, после которой grep управляют выше, должен возвратить хешированную строку, представляющую пароль для jim.

Также обязательно проверьте, что jim имеет оболочку входа в систему, набор по умолчанию и корневой каталог, который существует.

Отметьте сообщение lekensteyn информацией об изменении настроек сервера SSH.

8
ответ дан 22 November 2019 в 23:01

SSH очень требователен в отношении полномочий файла и каталога. Удостоверьтесь что:

  1. Каталог,/home/username/.ssh, имеет разрешение "700" и принадлежит пользователю (не корень!)
  2. /home/username/ssh/authorized_keys имеет разрешение "600" и принадлежит пользователю

Скопируйте свой открытый ключ в authorized_keys файл.

sudo chown -R username:username /home/username/.ssh
sudo chmod 0700 /home/username/.ssh
sudo chmod 0600 /home/username/.ssh/authorized_keys

Нет НИКАКОЙ потребности добавить пользователя к/etc/ssh/ssh_config.

98
ответ дан 22 November 2019 в 23:01

Могли бы быть некоторые экземпляры что PasswordAuthentication отключен по умолчанию.

Любезно проверьте /etc/ssh/sshd_config и удостоверьтесь что PasswordAuthentication атрибут установлен на yes.

0
ответ дан 22 November 2019 в 23:01

В моем случае у меня была группа, которой разрешили доступ, и пользователь не был частью его. Это решило его для меня.

Используя пример выше с пользователем jim и примите члена группы jim поскольку это - только группа (проблема groups управляйте, в то время как зарегистрированный как jim для нахождения групп, Вы - часть). В моем /etc/ssh/sshd_config файл я имел AllowGroups sshusers запись и таким образом должна была добавить jim к sshusers группа. Ниже то, как это было бы выполнено:

usermod -a -G sshusers jim

Замените свою группу и пользователя как подходящие для Вашей конфигурации.

3
ответ дан 22 November 2019 в 23:01

@Lekensteyn я не могу оставить комментарий ответу вопроса, потому что у меня нет репутации - но я пытался добавить

AllowUsers existingUser,newUser

в мой/etc/ssh/sshd_config файл и теперь я больше не могу ssh с обоими моими existingUser или newUser.

0
ответ дан 22 November 2019 в 23:01

Другие вопросы по тегам:

Похожие вопросы: