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

Установка и настройка сервера SSH в Linux

Secure Shell, т. е. SSH – протокол, обеспечивающий защищённые соединения и передачу данных между двумя удалёнными компьютерами. Изначально создавался на замену таким системам как rlogin и rcp. Как понятно из полного названия протокола, система SSH позволяет соединяться и управлять удалённым узлом (компьютером, маршрутизатором и т. д.), при этом защищая весь передаваемый трафик с помощью высоконадёжного шифрования.
SSH широко применяется администраторами серверов для их настройки и управления, да и обычные продвинутые пользователи — владельцы, например, сайтов или виртуальных серверов активно используют SSH для подключения к своей учётной записи на хостинге и использования командной оболочки сервера.
Сразу после окончания разработки система SSH стала активно трансформироваться в закрытый коммерческий продукт в виде версии SSH2. Но благодаря сообществу GNU версии протокола SSH1 и SSH2 были реализованы в виде открытого и свободно распространяемого ПО openSSH. В Linux-системах используется именно этот метапакет.
Метапакет SSH базово включает в себя сервер SSH (sshd) в качестве програмы-демона, а также несколько утилит: ssh – удаленная регистрация и выполнение команд, scp – передача файлов и ssh-keygen – для генерации пар SSH-ключей.

Установка пакетов SSH

Как уже говорилось система ssh в Linux-системах распространяется в виде составного метапакета, поэтому для установки всех требуемых утилит ssh нужно выполнить всего одну команду:
В Ubuntu

После чего начнется процесс установки

Как видно, менеджер пакетов сам распознает все зависимые и связанные пакеты и установит их. Также, по завершению установки, автоматически будет запущен SSH-сервер в режиме демона. Это можно проверить командой:
$ systemctl status sshd
или:
$ service sshd status даст тот же вывод. Теперь сервер работает с базовыми настройками по-умолчанию.

Настройка SSH

Режим работы SSH-сервера с настройками по-умолчанию хоть и является вполне работоспособным для небольших частных сетей, всё же нуждается в задании некоторых важных параметров для использования на высоконадёжных публичных серверах. Настройки демона хранятся в файле /etc/ssh/sshd_config. Посмотреть его можно командой

В первую очередь следует обратить внимание на следующие параметры: Port, AddressFamily, ListenAddress. Первый глобально задаёт номер порта, через который будет работать соединение и если оставить его стандартным, т. е. 22, то велика вероятность, что он будет слишком часто сканироваться роботами.
Примечание: для задания активации параметра необходимо раскомментировать соответствующую строку — убрать символ «#» в её начале.
Второй параметр задаёт семейство используемых IP-адресов — IPv4 и IPv6. Если, к примеру, используются только адреса IPv4, то очень рекомендуется установить для параметра

Для адресов семейства IPv6 используется значение inet6.
Параметр ListenAddress позволяет задавать порты для отдельных сетевых интерфейсов:

Поскольку реализация openSSH позволяет работать с протоколами SSH1 и SSH2, то разумно отключить использование SSH1, т. к. эта версия является устаревшей. Работа по SSH1 крайне не рекомендуется: Protocol 2
Очень полезным является параметр, позволяющий проводить авторизацию и шифрование трафика с помощью специальных SSH-ключей:

Следует заметить, что в таком случае серверу необходимо явно указывать, где хранятся открытые ключи пользователей. Это может быть как один общий файл для хранения ключей всех пользователей (обычно это файл etc/.ssh/authorized_keys), так и отдельные для каждого пользователя ключи. Второй вариант предпочтительнее в силу удобства администрирования и повышения безопасности:
AuthorizedKeysFile etc/ssh/authorized_keys # Для общего файла
AuthorizedKeysFile %h/.ssh/authorized_keys # Файл -> пользователь
Во втором варианте благодаря шаблону автоподстановки с маской «%h» будет использоваться домашний каталог пользователя.
Важно также отключать парольный доступ:

Читайте также:  Windows 10 home вход без пароля

Или же, в случае, если всё-таки необходимо использовать доступ по паролю, то обязательно нужно отключать авторизацию по пустому паролю:

Для указания разрешённых или запрещённых пользователей и групп служат директивы DenyUsers, AllowUsers, DenyGroups, и AllowGroups. Значениями для них являются списки имён, разделяемых пробелами, например:

Следует также отключать root-доступ:

Иногда, когда следует задавать мультисерверную конфигурацию, очень удобно использовать алиасы (Aliases), что позволяет настроить сразу несколько режимов доступа (с разными хостами, портами и т. д.) и использовать их, указывая при этом конкретный алиас:

Настройки для алиасов хранятся либо глобально в /etc/ssh/ssh_config, либо раздельно для пользователей в

/.ssh/config. Здесь нужно не спутать с ssh_config! Пример:

Для применения сделанных настроек необходим перезапуск SSH-сервера:

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

где user_name – имя пользователя в системе, host_name – имя узла, к которому производится подключение, например:

При этом утилита ssh запросит (в зависимости от настроек сервера) логин, пароль или парольную фразу для разблокировки приватного ключа пользователя.
В случае авторизации по ключу, должна быть предварительно сгенерирована пара SSH-ключей — открытый, который хранится на стороне сервера, обычно в файле .ssh/authorized_keys в домашнем каталоге пользователя, и закрытый — используется для авторизации клиента и хранится, как правило, в каталоге .ssh/ домашней директории пользователя. Открытый ключ представляет собой «цифровой слепок» закрытого ключа благодаря которому сервер «знает», кто «свой», а кто «чужой».
Для генерации ключей используется утилита ssh-keygen:

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

/.ssh/, ввести парольную фразу для закрытого ключа. После чего будут сгенерированы открытый ключ id_rsa.pub и закрытый — id_rsa. Теперь нужно скопировать открытый ключ, т. е. «слепок» закрытого на сервер. Проще всего этого можно добиться командой:

Теперь можно выполнить подключение командой ssh и запустить защищённый сеанс удалённого управления.
Важно заметить, что использование сгенерированных openSSH-ключей несовместимо с PPK-форматом, используемым по-умолчанию в таких комплексах как PuTTY. Поэтому необходимо конвертировать имеющиеся openSSH-ключи в формат PPK. Удобнее всего это делать с помощью утилиты PuTTY – puttygen.exe.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

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

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

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

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

7 ответов

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

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

Читайте также:  Snmp mib install linux

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 группа. Ниже описано, как это будет достигнуто:

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

Читайте также:  Загрузить блокнот для windows 10

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

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

Источник

как дать shell и SSH новому юзеру?

Всем привет. В linux серверах я новичок. Есть сервер debian 6. кроме рута пользователей не дали. Создал нового командой adduser. теперь вытаюсь под ним зайти. при подключении просто жду 15 секунд до сообщения о лимите времени подключения. Доступ на сервер осуществляется по SSH. Подсказали что нужно дать юзеру shell и ssh. Подскажите пожалуйста как это сделать? Заранее спасибо.

как именно создал пользователя?
как именно пытаешься зайти?
что в /etc/ssh/sshd_config?
что показывает ssh -vvv user@server?

пользователя создал из под рута командой adduser. никаких параметров не указывал, только adduser newuser. система сказала указать пароль — я указал.

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

в /etc/ssh/sshd_config много всего, что именно там посмотреть, а то копировать суда слишком много будет.

ssh -vvv user@server показывает очень много информации, спросил меня продолжить подключение пли нет. я продолжил, но он выдал:

Warning: Permanently added ‘zebra819,xxx.xxx.xxx.xx’ (RSA) to the list of known hosts. debug2: bits set: 521/1024 debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent Write failed: Broken pipe

(ip сервера я на «х» заменил, для конфиденциальности =))

а пароль задал пользователю при создании?
passwd user

И покажи
grep Password /etc/ssh/sshd_config

а ты руками /etc/passwd не правил? Там есть запись для пользователя вида /bin/bash|/bin/sh|/bin/csh?

# grep Password /etc/ssh/sshd_config PermitEmptyPasswords no #PasswordAuthentication yes # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication, then enable this but set PasswordAuthentication

Когда вызвал команду adduser система сама попросила ввести новый пароль для юзера. 2 раза попросила.

Источник

Создание пользователя и 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/

Источник

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