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

Содержание
  1. Создание пользователя и SSH ключей
  2. Команды для создания пользователя в linux:
  3. Команды для работы с SSH ключами в linux:
  4. FTP-учетные записи — создание по SSH
  5. Создайте нового пользователя SSH на сервере Ubuntu
  6. 7 ответов
  7. How to create a sudo user on Ubuntu and allow SSH login
  8. Create a sudo user
  9. 1. Log in to your server as the user with superuser privilege
  10. 2. Create a new user account
  11. 3. Add the user to the sudo group
  12. 4. Test
  13. Add public key to allow remote SSH login for the new user
  14. 1. Switch to the new user account
  15. 2. Create .ssh folder in home directory
  16. 3. Create authorized_keys file in side the .ssh folder and add the public key
  17. 4. Verify SSH remote login
  18. Как пользоваться SSH
  19. Базовый синтаксис
  20. Опции команды SSH
  21. Настройка сервера SSH
  22. Порт ssh
  23. Протокол SSH
  24. Рут доступ
  25. Доступ только определенного пользователя к SSH
  26. Выполнение X11 приложений
  27. Использование SSH
  28. Подключение к серверу
  29. Выполнить команду
  30. Выполнить локальный скрипт
  31. Бекап на удаленный сервер и восстановление
  32. Аутентификация без пароля
  33. Взять пароль из локального файла
  34. Изменить приветствие SSH
  35. Смотрим неудачные попытки входа SSH
  36. Передача файлов по SSH
  37. Запуск графических приложений по ssh
  38. Завершение сессии SSH
  39. Туннели SSH
  40. Выводы

Создание пользователя и SSH ключей

Команды для создания пользователя в linux:

Посмотреть список групп в системе:
vi /etc/group

Посмотреть список груп конкретного пользователя:
id -Gn vasyapupkin

Создать пользователя:
sudo useradd vasya
Создать пользователя + скелетные директории:
sudo adduser vasya

Или создать пользователя сразу добавив в дополнительную группу newGroup:
sudo useradd -G newGroup vasyapupkin

Добавить пользователя vasyapupkin в группу newGroup:
sudo usermod -a -G newGroup vasyapupkin

добавить пользователю права sudo:
sudo usermod -a -G sudo vasya
//relogin after it
Или
sudo visudo
vasya ALL=(ALL:ALL) NOPASSWD:ALL

Удалить пользователя и его домашнюю директорию с файлами:
userdel -r vasya

Команды для работы с SSH ключами в linux:

Создать SSH пару ключей закрытый и открытый:

ssh-keygen -t rsa -b 4096 -C «user@11.1.2.3»

Скопировать ssh ключи от одного пользователя другому

sudo cp -r /home/USER1/.ssh /home/USER2/.ssh
sudo chown -R USER2:USER2 /home/USER2/.ssh
sudo chmod -R 700 /home/ddudin/.ssh

Сменить пароль на ключ можно с помощью команды
ssh-keygen -p

Если вы знаете пароль пользователя, то процесс можно упростить.
Команда
ssh-copy-id user@server
позволяет скопировать ключ не редактируя файлы вручную.

ssh-copy-id -i id_rsa.pub user@11.1.2.3

МОМЕНТЫ:
Все права на /home/USER/.ssh должны быть 700 и только пользователя владельца
Команды для этого:
sudo chown -R USER2:USER2 /home/USER2/.ssh
sudo chmod -R 700 /home/USER2/

Источник

FTP-учетные записи — создание по SSH

Руководство по созданию и настройке ftp пользователя с помощью оболочки SSH

По-умолчанию, на сервере доступен только суперпользователь root. Подключение с данными root по протоколу FTP невозможно в целях безопасности (используется незашифрованный пароль). Если есть такая необходимость быстрой ручной настройки нового ftp пользователя при отсутствии на сервере панели управления ISPmanager, для этого нужно:

Установка proftpd (если он установлен, пропускаете):

Debian/Ubuntu

CentOS

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

Ограничение ftp пользователей пределами домашнего каталога

Данная статья подразумевает работу конфигурацией ProFTPd «по-умолчанию», а в этом случае пользователь может выходить за пределы своего домашнего каталога и, хотя прав на работу с другими папками у него, скорее всего, нет, но при недостаточно строгой конфигурации сервера это может представлять угрозу безопасности. Решить эту проблему можно добавив одну строку в файл proftpd.conf:

Добавить ее можно в конец файла. После сохранения, перезапустите ftp сервер:

Создание нового ftp пользователя

Обычным ftp пользователям нет необходимости иметь доступ к командной оболочке. Перед созданием новых пользователей, выполните команду:

имя_пользователя нужно заменить на не занятое имя и соответствующую группу, назначили и создали ключ -m можно опустить, если каталог уже существует домашний каталог /home/имя_папки и выбрали /bin/false** в качестве командной оболочки пользователя, тем самым ее отключив в целях безопасности.

passwd мы создали пользователю необходимый пароль.

Доступ к командной оболочке (shell)

Если Вы хотите предоставлять пользователю доступ к командной оболочке, то указывайте путь до любой действующей вместо /bin/false, например:

Пользователям обычного протокола ftp не нужен доступ к shell, поэтому, безопаснее его не предоставлять.

Расположение proftpd.conf

Файл настроек proftpd.conf может располагаться в разных местах, в зависимости от вашей версии ОС:

Debian: /etc/proftpd/proftpd.conf

CentOS: /etc/proftpd.conf

Ubuntu: /etc/proftpd.conf

Ограничение прав ftp пользователя

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

От имени root измените права:

chmod 555 /home/имя_папки
mkdir /home/имя_папки/upload
chown имя_пользователя:имя_пользователя /home/имя_папки/upload

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

Источник

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

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

  • Создайте нового пользователя (назовем их jim для остальной части этого). Я хочу, чтобы у них был каталог /home/ .
  • Предоставьте доступ к SSH jim .
  • Разрешить jim до su для root, но не выполнять операции sudo .
  • Отключите root SSH-доступ.
  • Переместите SSHd на нестандартный порт, чтобы предотвратить остановку грубых атак.
Читайте также:  Свое облачное хранилище linux

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

7 ответов

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

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

PermitRootLogin запрещает вход в систему с правами root.

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

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

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

  1. Каталог /home/username/.ssh имеет разрешение «700» и принадлежит пользователю (не root!)
  2. У пользователя /home /username /ssh /authorized_keys есть разрешение «600» и принадлежит пользователю.

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

НЕТ необходимо добавить пользователя в /etc /ssh /ssh_config.

В /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 для root. Чтобы использовать su , вам необходимо установить пароль root ( passwd root ), после чего я рекомендую установить PermitRootLogin=no в /и т.д. /SSH /sshd_config.

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

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

sudo apt-get install openssh-server

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

Для этого требуется перезапустить службу.

sudo service ssh restart

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

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

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

Обратите внимание на сообщение lekensteyn для получения информации об изменении настроек сервера SSH.

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

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

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

По умолчанию могут быть некоторые случаи, когда PasswordAuthentication отключен.

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

Источник

How to create a sudo user on Ubuntu and allow SSH login

Chi Thuc Nguyen

Aug 7, 2019 · 2 min read

The sudo command is used to allow a permitted user to execute a command as the superuser or another user, as specified by the security policy.

In this guide, I will show you how to create a new user on an Ubuntu server and give it sudo access and allow SSH login to that user.

Create a sudo user

1. Log in to your server as the user with superuser privilege

2. Create a new user account

For this, we use adduser command. Don’t be confused with the useradd command here. useradd is a low level binary command compiled with the system, whereas adduser is a high level Perl script built on top of useradd .

You sho u ld always use adduser to create new user as it provides more user friendly and interactive procedure.

Читайте также:  Переустановить windows с этого устройства что это

Then follow the instruction to finish the procedure

3. Add the user to the sudo group

On Ubuntu, members of the sudo group have sudo privileges by default.

4. Test

  • Switch to the new user account
  • Verify the superuser privileges by the sudo command

Add public key to allow remote SSH login for the new user

1. Switch to the new user account

2. Create .ssh folder in home directory

3. Create authorized_keys file in side the .ssh folder and add the public key

Use your favorite text editor for this. I use vim here, for example:

And paste your SSH public key here, save and close file

4. Verify SSH remote login

Open another terminal on your machine and try to remote SSH login using new user.

This should work if you have your SSH private key in

/.ssh/id_rsa file, otherwise you must specify the path to your private key with -i option:

If you can login successfully, congratulations!

Источник

Как пользоваться SSH

SSH — (Secure Shell) — это протокол удаленного управления компьютером с операционной системой Linux. В основном ssh используется для удаленного управления серверами через терминал. Если вы администратор нескольких серверов или даже продвинутый веб-мастер, то наверное, вы часто сталкиваетесь с необходимостью работать с тем или иным компьютером по ssh. В Linux для этого используется сервер ssh на машине, к которой нужно подключится и клиент, на той из которой подключаются.

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

Базовый синтаксис

Синтаксис команды выглядит следующим образом:

$ ssh [опции] имя пользователя @ сервер [команда]

Важно заметить что ssh может работать по двум версиям протокола. Версии 1 и 2. Понятное дело, что версия 2 лучше и поддерживает больше типов шифрования и аутентификации. Больше в этой статье об отличиях протоколов мы говорить не будем и я буду подразумевать что вы используете версию 2.

Опции команды SSH

Теперь давайте рассмотрим самые основные опции команды ssh:

  • f — перевести ssh в фоновый режим;
  • g — разрешить удаленным машинам обращаться к локальным портам;
  • l — имя пользователя в системе;
  • n — перенаправить стандартный вывод в /dev/null;
  • p — порт ssh на удаленной машине;
  • q — не показывать сообщения об ошибках;
  • v — режим отладки;
  • x — отключить перенаправление X11;
  • X — включить перенаправление Х11;
  • C — включить сжатие.

Это далеко не все опции утилиты, остальные выходят за рамки данной статьи. Многие настройки работы ssh можно изменять через конфигурационный файл

/.ssh/config но здесь мы это тоже подробно рассматривать не будем.

Настройка сервера SSH

Настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Многие из них мы тоже трогать не будем. Рассмотрим только самые интересные. Сначала откройте файл /etc/ssh/sshd.conf

Порт ssh

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

Поменяйте значение порта на нужное.

Протокол SSH

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

И приведите ее к такому виду:

Рут доступ

По умолчанию Root доступ по ssh разрешен, но такое поведение очень небезопасно, поэтому раскомментируйте строчку:

Доступ только определенного пользователя к SSH

Мы можем разрешить доступ к ssh только для определенного пользователя или группы. Для этого добавьте строчки:

AllowUsers User1, User2, User3
AllowGroups Group1, Group2, Group3

Здесь User1 и Group1 — пользователь и группа к которым нужно разрешить доступ.

Выполнение X11 приложений

Не все знают но есть возможность использовать ssh для запуска полноценных X11 приложений. Об этом мы поговорим ниже, но чтобы все заработало необходимо разрешить эту возможность на стороне сервера, добавьте такую строчку:

Основные опции рассмотрели, перед тем как переходить дальше, не забудьте перезагрузить ssh сервер чтобы сохранить изменения:

service sshd restart

Использование SSH

Основная цель этой статьи — показать интересные и полезные способы использования ssh, о которых, возможно, вы не знали. Переходим к самому вкусному — возможности ssh.

Подключение к серверу

Чтобы просто подключиться к серверу по SSH используйте такую команду:

Выполнить команду

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

ssh user@host ls

Выполнит команду ls на удаленном сервере и вернет ее вывод в текущий терминал.

Выполнить локальный скрипт

Выполним интерпретатор bash на удаленном сервере и передадим ему наш локальный скрипт с помощью перенаправления ввода Bash:

Читайте также:  Linux максимальное имя файла

ssh user@host ‘bash -s’

Бекап на удаленный сервер и восстановление

Мы можем сохранять бекэп диска сразу на удаленном сервере с помощью ssh. Перенаправим вывод dd с помощью оператора перенаправления |, затем сохраним его на той стороне в файл:

sudo dd if=/dev/sda | ssh user@host ‘dd of=sda.img’

Теперь чтобы восстановить состояние диска из сделанной копии выполните:

ssh user@host ‘dd if=sda.img’ | dd of=/dev/sda

Здесь и выше /dev/sda имя файла вашего жесткого диска.

Аутентификация без пароля

Использование ssh пароля для входа на сервер не только неудобно но и небезопасно, потому что этот пароль в любой момент может быть подобран. Самый надежный и часто используемый способ аутентификации — с помощью пары ключей RSA. Секретный ключ хранится на компьютере, а публичный используется на сервере для удостоверения пользователя.

Настроить такое поведение очень легко. Сначала создайте ключ командой:

ssh-keygen -t rsa

Во время создания ключа нужно будет ответить на несколько вопросов, расположение оставляйте по умолчанию, если хотите подключаться без пароля — поле Passphare тоже оставьте пустым.

Затем отправляем ключ на сервер:

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

Взять пароль из локального файла

Напомню, что хранить пароли в обычных текстовых файлах небезопасно, но если хотите, то да — возможно. Для этого используется оператор перенаправления ввода Bash:

Изменить приветствие SSH

При входе по ssh может выводиться приветствие, изменить его очень легко. За это отвечает файл /etc/issue. Просто откройте этот файл и введите нужный текст:

Смотрим неудачные попытки входа SSH

Хотите посмотреть были ли попытки неудачного доступа по ssh к вашему серверу и с каких IP адресов? Запросто, все запросы логируются в файл /var/log/secure, отфильтруем только нужные данные командой:

cat /var/log/secure | grep «Failed password for»

Передача файлов по SSH

Кроме выполнения команд, можно копировать файлы по ssh. Для этого используется утилита scp. Просто укажите файл, который нужно передать, удаленный сервер и папку на сервере, вот:

$ scp /адрес/локального/файла пользователь@ хост: адрес/папки

Кроме утилиты scp, передача файлов ssh может быть выполнена более хитрым способом. Прочитаем файл и с помощью cat, передадим, а там сохраним поток в файл:

cat localfile | ssh user@host «cat > remotefile»

ssh user@host «cat > remotefile»

Пойдем еще дальше, вы можете сжимать файлы перед передачей с помощью tar, а потом их сразу же на лету распаковывать:

tar czf — /home/user/file | ssh user@host tar -xvzf -C /home/remoteuser/

Такое копирование файлов ssh позволяет отправлять сразу целые папки.

Запуск графических приложений по ssh

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

Затем просто выполняем команду запуска графического приложения на удаленном сервере вот таким образом:

ssh -XC user@remotehost «eclipse»

Как вы уже видели опция X разрешает перенаправление X11 на стороне клиента, а С — сжатие данных.

Завершение сессии SSH

Если вы использовали SSH с нестабильным интернетом, когда соединение время от времени рвется, то вам уже, наверное, надоело закрывать терминал, потому что иначе, на первый взгляд, сеанс никак не прекратить. Когда соединение с удаленным сервером разорвано вы не можете ввести никакую команду и сочетания клавиш Ctrl+C, Ctrl+Z, Ctrl+D не работают. И не будут работать поскольку клиент пытается отправить эти команды на сервер. Но есть решение — Escape последовательности. Чтобы активировать их поддержку добавьте строку:

В файл /etc/ssh/ssh_config. Теперь, чтобы разорвать SSH соединение достаточно нажать Enter и набрать:

Другие управляющие символы можно узнать нажав:

Туннели SSH

С помощью SSH туннелей вы можете пробросить порт с удалённого сервера на локальную машину. Это очень полезно, в первую очередь, для разработчиков. Для того чтобы пробросить порт с удалённой машины локальной используйте опцию -L и такой синтаксис:

$ ssh -L локальный_порт :удаленный_адрес : удаленный_порт пользователь@сервер

Например, сделаем удалённую базу данных доступной локально на порту 5555. Для этого выполните подставив свои значения:

$ ssh -N -L 5555:127.0.0.1:3306 root@losst-1

Опция -N сообщает, что команду на удалённой машине выполнять не нужно. Локальный порт — 5555, поскольку сервер баз данных слушает на локальном интерфейсе удалённой машины, то и здесь надо указывать адрес 127.0.0.1. А порт MySQL по умолчанию 3306. Если же вы хотите чтобы локальный сервис был доступен на удалённой машине, то следует использовать опцию -R:

$ ssh -N -R 5555:127.0.0.1:3306 root@losst-1

Теперь локальная база данных на порту 3306 будет доступна на удалённом сервере при обращении к порту 5555.

Выводы

Теперь вы знаете как пользоваться SSH. Как видите, технология SSH позволяет сделать намного больше чем можно предположить с первого взгляда, и это еще далеко не все. Какие интересные возможности SSH используете вы при повседневной работе? Поделитесь в комментариях!

Источник

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