Linux add user with ssh

Добавление пользователей

Из соображений безопасности работа от пользователя root в системе Linux не рекомендуется, так как при ошибке в команде могут произойти необратимые повреждения файлов и системы.

Оптимальным решением является создание дополнительного пользователя VDS с привилегиями sudo. Механизм sudo позволит пользователю при необходимости выполнять операции с правами администратора (root).

По этой же инструкции создаются и обычные пользователи системы (без привилегий sudo) — достаточно выполнить первые три шага.

Создание пользователя с привилегиями sudo

1. Создайте нового пользователя (в примере — username) командой ниже:

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

2. В Ubuntu / Debian далее будет запрошен пароль пользователя. Его будет необходимо ввести дважды. Помните, что символы пароля не отображаются в консоли Linux при вводе.

В CentOS для установки пароля выполните команду:

После введите пароль и повторите его.

3. Д алее в Ubuntu / Debian будет запрошен ввод дополнительной информации о пользователе (имя, номер телефона и пр.). Вы можете указать данные или нажимать Enter, чтобы оставить значения по умолчанию (т.е. пустые). После нажмите Y для подтверждения.

В CentOS , если вы хотите указать дополнительную информацию, выполните команду:

На этом этапе создание обычного пользователя (без привилегий sudo) завершено

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

usermod -aG wheel username

5. Проверьте работу пользователя. Для этого переключитесь на сеанс работы от его имени:

Система запросит пароль пользователя (при первом запуске sudo). Введите его, после чего попробуйте выполнить любую команду с привилегиями sudo. Например, можно просмотреть содержимое каталога /root , которое недоступно пользователю с обычными правами:

Если содержимое каталога отобразится, значит, созданный пользователь работает корректно.

Если для root используется аутентификация по SSH-ключу

Если вы вошли под root, используя ключ SSH, то аутентификация по паролю для SSH отключена. Вам нужно будет добавить копию вашего локального открытого ключа в файл нового пользователя ~/.ssh/authorized_keys для успешного входа в систему.

Поскольку ваш открытый ключ уже находится в файле ~/.ssh/authorized_keys учетной записи root, можно скопировать этот файл в каталог нового пользователя с помощью команды cp и настроить права на файлы с помощью команды chown .

Скопируем весь каталог в домашний каталог нового пользователя:

Установим username владельцем этого каталога (также будет создана группа с тем же именем):

chown -R username:username /home/username/.ssh

Теперь можно залогиниться на сервер под новым пользователем без использования пароля:

ssh username@your_server_ip

Если нужно запустить команду с правами администратора, введите sudo перед ней, например:

Вам будет предложено ввести пароль обычного пользователя при первом использовании sudo (и периодически после этого).

Читайте также:  Сведения о системе linux терминал

6. Этот шаг не является обязательным, но для повышения безопасности можно отключить дистанционный доступ для суперпользователя root. В этом случае пользователям всегда будет необходимо подключаться под собственными учетными записями, что позволит отслеживать действия на сервере, видеть, кем были внесены те или иные изменения и т.д.
Для отключения доступа root откройте файл /etc/ssh/sshd_config :

sudo nano /etc/ssh/sshd_config

Найдите строку PermitRootLogin и замените ее текущее значение на:

Выйдите из редактора с сохранением изменений (комбинация Ctrl X -> Y -> Enter).

После выполненных действий перезапустите службу SSH командами ниже.

sudo service sshd restart

Другие команды для управления пользователями

Если вам необходимо добавить пользователя в другую группу, она должна быть предварительно создана:

В Ubuntu и Debian для создания группы также можно использовать команду:

После чего можно создать пользователя следующим образом:

useradd -g имя_группы username

Если пользователь уже существует, вы можете добавить его в нужную группу командой usermod :

usermod -G имя_группы username

Для того, чтобы изменить первичную группу пользователя, используется ключ -g :

usermod -g имя_группы username

Для смены домашнего каталога пользователя используется команда:

usermod -d путь/к/новому/каталогу username

Получить информацию о пользователе можно командой:

Вывод будет содержать примерно следующие сведения:

uid=1000(username) gid=1000(username) groups=1000(username),27(sudo)

Сменить пароль можно командой:

Просмотреть список всех созданных пользователей можно командой:

Чтобы получить только список имен, без дополнительной информации, можно использовать:

Вывести список пользователей, которые сейчас в системе, можно простой командой w .

Удалить пользователя можно командой:

Для удаления группы используется команда:

Источник

How to create a new user with ssh access?

Finally I logged in as the user and copied my public ssh key into the ~/.ssh/authorized_keys file. But I still get Permission denied (publickey) when I try to ssh as that user.

Probably permissions problems. What are the permissions of the home directory of that user, what are the permissions of ~/.ssh directory and the ~/.ssh/authorized_keys file in the users home directory? Where is the private key of that user used to authentication?

The ~/.ssh directory has drwxrwxr-x . The ~/.ssh/authorized_keys has -rw-rw-r— . The remote user has an ssh key in the ~/.ssh directory and so does my local user.

I’m not sure what to make of it. This is the end of the log that appears when I run ssh -vvv debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 51

1 Answer 1

  • Run ssh -vvv to see a lot of debugging output. If you post a question asking why you can’t connect with ssh, include this output (you may want to anonymize host and user names).
  • If you can, check the server logs, typically in /var/log/daemon.log or /var/log/auth.log or similar.
  • If public key authentication isn’t working, check the permissions again, especially the group bit (see above).

You must log in to answer this question.

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.13.43530

Читайте также:  Linux dpkg list packages

Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group.
This site is not affiliated with Linus Torvalds or The Open Group in any way.

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Create a new SSH user on Ubuntu Server

My problem lies with the first two items. I’ve already found useradd but for some reason, I can’t log in as a user created with it over SSH. Do I need to beat SSHd to allow this?

Hi! I can help you in servers, I don’t know what is your problem with SSH, because for me with default config never refuses my connection. You may see man 5 nologin, this writes, that if /etc/nologin exists, you can log in with root only. Try login normally, then write the results.

What’s the user’s shell? Is it /bin/bash? Check that out in /etc/password. Make sure it’s not /dev/null or /bin/false.

@B. Roland I do have a /etc/nologin file but it’s empty. I deleted it and restarted ssh but it’s still just responding Permission denied, please try again. when I try and log in.

9 Answers 9

SSH is very picky about the directory and file permissions. Make sure that:

  1. The directory /home/username/.ssh has permission «700» and is owned by the user (not root!)
  2. The /home/username/ssh/authorized_keys has permission «600» and is owned by the user

Copy your public key into the authorized_keys file.

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

There is NO need to add the user to /etc/ssh/ssh_config.

My problem was that I was trying to use /root/.ssh/authorized_keys instead of /home/bob/.ssh/authorized_keys .

I can confirm: on our VPS hosting there was no need to edit ssh_config . Setting up that directory and file was enough.

Much easier to login as user (or sudo su —login ) and run ssh-keygen -> The «.ssh» folder, key+cert and permissions are completed. Just create authorized_keys as per your instructions.

Edit (as root) /etc/ssh/sshd_config . Append the following to it:

Port 1234 PermitRootLogin no AllowUsers jim 

Port 1234 causes SSH to listen on port 1234. You can use any unused port from 1 to 65535. It’s recommended to choose a privileged port (port 1-1024) which can only be used by root. If your SSH daemon stops working for some reason, a rogue application can’t intercept the connection.

PermitRootLogin disallows direct root login.

AllowUsers jim allows user jim to login through SSH. If you do not have to login from everywhere, you can make this more secure by restricting jim to an IP address (replace 1.2.3.4 with your actual IP address):

Changes to the configuration file /etc/ssh/sshd_config are not immediately applied, to reload the configuration, run:

+1: Note: these instructions are still applicable to newer versions of Ubuntu (e.g. 13.04). If you do want root login, however, (perhaps you’re still setting up the server), you must set PermitRootLogin to yes and also add root to AllowUsers .

Читайте также:  Запустить steam в линукс

@Lekensteyn I’ve found just adding a new user to Ubuntu itself creates an ssh account for that user. useradd -m -G sudo,adm -s /bin/bash mecharok and passwd mecharok

@Wolfpack’08 Use AllowUsers username1,username2 to restrict SSH logins to those users. Ensure that sshd is reloaded. If this does not help, please create a new question.

@Lekensteyn your command: AllowUsers username1,username2 has the wrong format and will lock you out of your server!! The correct command to set is: AllowUsers username1 username2

There will be clues in /var/log/auth.log for why SSH (or PAM) is rejecting the login attempt. Additional clues may be found by using the -v option with the ssh client. Several common situations, some mentioned in the other answers:

  • the user account lacks a password, or is otherwise disabled (see man passwd , try resetting the password or checking the contents of /etc/shadow ).
  • /etc/ssh/sshd_config is configured to disallow the login ( DenyUsers , AllowUsers , PasswordAuthentication , PubkeyAuthentication , UsePAM etc, see man sshd_config ).
  • the user’s shell is not listed in /etc/shells .
  • various permission problems on directories or files related to SSH operation: /etc/ssh , /home/jim/.ssh , /home/jim/.ssh/* , etc.

I’d also recommend using adduser (instead of useradd) for adding new users; it is a little more friendly about various default account settings.

As long as the user is not part of the admin group, they will not be able to sudo to root. For them to use su, you will need to set a root password ( passwd root ), after which I recommend setting PermitRootLogin=no in /etc/ssh/sshd_config .

Источник

Creating a new user with an SSH key on Linux

The various steps to successfully setup a new user with the best security.

Posted at March 1, 2021 by Nicholas C. Zakas

First, create a new user with useradd :

sudo useradd -m -d /home/username -s /bin/bash username

Next, set the user’s password:

Then, copy the contents of the user’s public key into /home/username/.ssh/authorized_keys . This is a plain text file where you can paste one public key per line.

After that, set up the correct permissions for both the .ssh directory and the authorized_keys file:

# ensure the directory ir owned by the new user chown -R username:username /home/username/.ssh # make sure only the new user has permissions chmod 700 /home/username/.ssh chmod 600 /home/username/.ssh/authorized_keys

Last, if you want the new user to have sudo access, be sure to add them to the sudo group:

sudo usermod -a -G sudo username

If you don’t have a sudo group, you can manually edit the /etc/sudoers file.

Understanding JavaScript Promises E-book Cover

Demystify JavaScript promises with the e-book that explains not just concepts, but also real-world uses of promises.

Download the Free E-book!

The community edition of Understanding JavaScript Promises is a free download that arrives in minutes.

Additional Information

My Books

Recent Snippets

Источник

Оцените статью
Adblock
detector