- Добавление пользователей
- Создание пользователя с привилегиями sudo
- Если для root используется аутентификация по SSH-ключу
- Другие команды для управления пользователями
- Создание пользователя и SSH ключей
- Выдержка из офф. документации:
- Вырианты команд для работы с SSH в Windows:
- # Частые проблемы
- How to create a new user with ssh access?
- 1 Answer 1
- You must log in to answer this question.
- Related
- Hot Network Questions
- Subscribe to RSS
- Creating a new user with an SSH key on Linux
- Download the Free E-book!
- Additional Information
- My Books
- Recent Snippets
Добавление пользователей
Из соображений безопасности работа от пользователя 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 (и периодически после этого).
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 .
Удалить пользователя можно командой:
Для удаления группы используется команда:
Создание пользователя и SSH ключей
Скопировать 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 -f ~/.ssh/id_rsa_my_custom -p
Копирование открытого ключа на сервер:
ssh-copy-id -i id_rsa.pub username@remote_host
Когда ранее созданный ключ id_rsa.pub будет найден, тогда будет предложено ввести пароль учетной записи удаленного пользователя. Утилита подключится к учетной записи на удаленном хосте, используя указанный пароль. Затем содержимое ключа ~/.ssh/id_rsa.pub будет скопировано в основной каталог ~/.ssh удаленной учетной записи в файл с именем authorized_keys .
После этого можно проверить как работает подключение с этим ключом:
ssh -v -i ~/.ssh/id_rsa username@remote_host
- -i identity_file
- -v Prints debugging messages for ssh connection. The verbose mode is useful when troubleshooting configuration issues.
МОМЕНТЫ:
Все права на /home/USER/.ssh должны быть 700 и только пользователя владельца
Команды для этого:
sudo chown -R USER2:USER2 /home/USER2/.ssh sudo chmod -R 700 /home/USER2/
Выдержка из офф. документации:
3. Copy id_dsa.pub to the server's .ssh directory * -> scp $HOME/.ssh/id_dsa.pub user@server:/home/user/.ssh 4. Change to /root/.ssh and create file authorized_keys containing id_dsa content * -> cd /home/user/.ssh * -> cat id_dsa.pub >> authorized_keys
Вырианты команд для работы с SSH в Windows:
scp $HOME/.ssh/id_rsa.pub user@11.1.2.3:/home/user/.ssh ssh-copy-id user@11.1.2.3 "C:\Program Files\PuTTY\pscp.exe" C:/Users/user/.ssh/id_rsa.pub user@11.1.2.3:/home/user/.ssh "C:\Program Files\PuTTY\pscp.exe" C:/Users/user/.ssh/id_rsa user@11.1.2.3:/home/user/.ssh type public_id | "C:\Program Files\PuTTY\plink.exe" user@11.1.2.3 "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
# Частые проблемы
если ssh спрашивает пароль когда ключ SSH вы уже подставили, тогда значит первым делом проверяйте как идет подключение:
ssh -vT git@YOUR_HOST_OR_GIT_REPO
После этого вы поймете что ключ скорее всего не тот вы подставили и тогда вы можете добавить ключ в настройки гит-репы,
а в гит-репу нужен собственный формат ключа который дает puttygen
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.
Related
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.14.43533
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.
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.
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.