Linux создать пользователя ssh

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 .

@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

Читайте также:  Что такое mount linux

@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 .

Источник

Create New User And Add SSH Login In Linux Server

In this tutorial, I will discuss how to ssh into a server using the terminal. If you are a Linux administrator or a DevOps, you are always to be concerned about the security of your Linux web server. So I am here to help you with how to make your linux server more secure?

If you are a Linux user then you will know that, Linux server has a default root user as we all know. An hacker can easily take a guess about the root user and can try to break into a Linux system.

However, if we disable the root user he might not be able to guess the root user. So let’s see how to create a new user and disable root user in linux server.

Create a new admin user in Linux

# ssh with root user $ ssh root@YOUR_SERVER_IP # create alternate user called admin $ useradd -m -d /home/admin admin # make sure home directory created and has user permissions $ ls -lad /home/admin # update new user password $ passwd admin # add sudoer permission to new user $ echo 'admin ALL=(ALL) ALL' >> /etc/sudoers # now exit the terminal and make sure you # can ssh with new admin user before you disable root login $ exit​

Disable ssh login for the root user in Linux

Once we have a new sudo user created from the above command then we will disable ssh login for our root user.

$ ssh root@YOUR_SERVER_IP # once confirmed log in as root and open following file $ nano etc/ssh/sshd_config # find the PermitRootLogin line and change it to PermitRootLogin no # save your changes and restart the ssh $ sudo service sshd restart # now logout and try to login with root user # it should not allow ssh for root user $ exit $ ssh root@YOUR_SERVER_IP # if above step works then try login with # newly created admin user to login via ssh $ ssh admin@YOUR_SERVER_IP # exit the server $ exit​

But keep remembering that you would like to move in root user. So If you want to perform root-level operations for our new admin user then we have to switch to sudo mode and run commands as the root user like below:

# login using admin user $ ssh admin@YOUR_SERVER_IP # try to switch with root user # enter root password $ su​ //this su means #switch user

Источник

Читайте также:  Linux как создать file

Создание дополнительных учётных записей на сервере Linux (Ubuntu/Debian/CentOS). Подключение к ним по SSH.

На только что созданном сервере доступ для подключения к нему открыт для всего одной учётной записи. На серверах, работающих под управлением операционных систем семейства Linux, пользователь, существующий в системе по умолчанию это – пользователь root . Такая учётная запись имеет суперполномочия в своей системе и наделена полными правами по отношению ко всем службам, процессам, каталогам и файлам. Исходя из этого можно сделать вывод, что наличие у такого пользователя абсолютных полномочий представляет колоссальную опасность для вашей системы, в случае, если вы используете эту учётку для работы с сервером. Ведь, получив в своё распоряжение данные этой учётной записи, злоумышленник сможет произвести на сервере абсолютно любые действия.

Одним из источников возможной утечки данных является доступ к серверу по протоколу SSH. Исходя из этого, для подключения к серверу следует использовать специально созданные учётные записи.

Подключение по SSH

Для начала мы посмотрим, каким образом реализуется такого рода подключение.

Если ваша рабочая станция управляется одной из операционных систем Linux, то для подключения к серверу по SSH вам необходимо запустить терминал. В терминале нужно набрать специальную команду, которая выглядит следующим образом:

$ ssh имя_пользователя@IP_адрес_сервера

Здесь имя_пользователя – это имя учётной записи, которую вы используете для подключения, а IP_адрес_сервера – это IP-адрес сервера, к которому вы подключаетесь. Например, в нашем случае, когда мы подключаемся пользователем root к серверу с IP-адресом 45.8.230.83, команда будет выглядеть так:

Если вы подключаетесь к серверу впервые, то команда предложит вам согласиться с установлением доверительных отношений между вашей рабочей станцией и сервером. Для создания канала связи наберите yes . После чего нужно будет набрать пароль вашего пользователя, и если вы не ошиблись в наборе пароля, вы получите приглашение ко вводу команд. Если вы подключались не учётной записью root , то приглашение выглядит как $ , если вы подключаетесь как root , то приглашение будет выглядеть как # .

Подключение по SSH при помощи терминала

Точно таким же образом вы сможете подключиться по SSH с компьютера, работающего на Windows 10. Делается это из командной строки, для запуска которой нажмите Win r и наберите cmd . Далее, действуйте так же как в Linux.

Подключение по SSH при помощи командной строки

Для отключения от сервера нажмите Ctrl d .

В Windows 7 и ранних версиях Windows 10 подключиться к серверу по SSH скорее всего не получится. Там по умолчанию такой возможности нет. Поэтому, как в Windows 7, так и в Windows 10, для работы с протоколом SSH можно использовать различные SSH-клиенты. Наиболее популярным из них является PuTTy – свободно распространяемое программное обеспечение для работы с различными протоколами удалённого доступа, включая SSH.

Читайте также:  Hydra kali linux словарь

Дистрибутив PuTTy доступен на официальном сайте. По окончании установки PuTTy можно запустить через Win r , набрав putty . В открывшемся окне перейдите в категорию Session , в поле Connection type активируйте SSH, а в поле Host Name (or IP address) наберите IP-адрес вашего сервера. После чего нажмите кнопку Open :

Настройка подключения в PuTTy

В следующем окне нажмите Да :

В этом окне нажмите Да

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

Подключение по SSH через PuTTy

Для закрытия подключения используйте Ctrl d .

Создание дополнительных учётных записей

Для добавления нового пользователя необходимо будет подключиться к серверу по SSH. Подключение будем производить пользователем root .

Добавление новой учётной записи в Ubuntu происходит при помощи следующей команды:

В качестве имени нового пользователя в этой команде мы используем your-user . При выполнении данной команды система попросит вас указать новый пароль для создаваемого пользователя, после чего повторно набрать его. Далее, система предложит вам ввести некоторые необязательные параметры для новой учётной записи, типа Полное имя, Номер помещения, Рабочий телефон, Домашний телефон и Прочее. Если вы не хотите указывать такие данные, нажимайте на каждой строке Enter . Если всё введено правильно, на заключительный вопрос следует ответить утвердительно, нажав Y .

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

Такие же инструкции используются для аналогичных операций в Debian:

Создание пользователя в Ubuntu/Debian - Дополнительные учётные записи Linux

Добавление пользователя в группу sudo

Процедура добавления нового пользователя в CentOS незначительно отличается. Здесь, сначала необходимо добавить учётную запись в систему:

После чего, отдельной командой установить для неё пароль:

Создание пользователя и установка пароля в CentOS

А для предоставления новому пользователю привилегий sudo , в CentOS необходимо включить его в группу wheel :

# usermod -a -G wheel your-user

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

Закрытие доступа пользователю root

Теперь, подключившись к своему виртуальному серверу с помощью нового пользователя по SSH, вы сможете выполнять команды используя привилегированные полномочия – sudo . А если так, то логичным выглядит закрытие доступа к серверу по SSH пользователю root .

В Ubuntu и Debian для этого необходимо отредактировать файл конфигурации SSH. Делать это можно подключившись к серверу пользователем, имеющим полномочия sudo :

$ cd /etc/ssh/ $ sudo nano sshd_config

В файле sshd_config нужно раскомментировать строку PermitRootLogin и установить на этой строке значение no . Затем, закрыть файл с сохранением изменений. Для чего, при использовании текстового редактора nano , нажмите Ctrl X , Y и Enter .

Закрытие доступа на SSH пользователю root - Дополнительные учётные записи Linux

В CentOS необходимо также изменить конфигурационный файл SSH. Но здесь для этого нужно подключиться пользователем root :

И только после этого перейти к редактированию файла:

# cd /etc/ssh # sudo vi sshd_config

В файле найдите строку PasswordAuthentication , снимите с неё комментарий (если он есть) и установите в ней значение no .

Закрытие доступа на SSH пользователю root - Дополнительные учётные записи Linux Подключение к ним по SSH.

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

В CentOS команду для перезагрузки SSH необходимо запускать из-под учётной записи root :

Заключение

Итак, мы научились подключаться к VPS с использованием протокола SSH и создавать на сервере Linux дополнительные учётные записи с возможностью подключения с их помощью по SSH. Далее, вы сможете продолжить настройку с целью повышения уровня безопасности вашего сервера как для Ubuntu/Debian, так и для CentOS.

Источник

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