- Вопрос или проблема
- Ответ или решение
- Не удается получить доступ к SSH для нового пользователя: как решить проблему
- Введение
- 1. Проверьте настройки SSH
- Конфигурация sshd_config
- Права доступа
- 2. Настройка пользователя и прав доступа codeuser
- Убедитесь, что у пользователя есть пароль
- Проверьте папку .ssh и файл authorized_keys
- 3. Анализ журналов
- 4. Дополнительные проверки
- Заключение
Вопрос или проблема
Я создал нового пользователя на Ubuntu 10
имя пользователя: codeuser
Существует существующий пользователь под именем “admin”. Теперь моя проблема в том, что я не могу напрямую подключиться к серверу, используя учетные данные codeuser. Но я могу подключиться через SSH под “admin”, а затем использовать su (сменить пользователя на codeuser), и это работает. Как мне получить доступ к оболочке пользователя codeuser?
Вот вывод моих файлов:
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
www-data:x:33:33:www-data:/var/www:/bin/bash
admin:x:1000:1000:,,,:/home/admin:/bin/bash
ftp:x:107:65534::/home/ftp:/bin/false
codeuser:x:1004:33::/home/codeuser:/bin/bash
cat /etc/group
root:x:0:
www-data:x:33:
codeuser:x:1005:
iptables -L
Цепочка INPUT (политика ACCEPT)
цель протокол опция источник назначение
ACCEPT tcp -- везде везде tcp dpt:mysql
Цепочка FORWARD (политика ACCEPT)
цель протокол опция источник назначение
Цепочка OUTPUT (политика ACCEPT)
цель протокол опция источник назначение
Проверьте /etc/ssh/sshd_config на наличие списка разрешенных пользователей. Если все в порядке, проблема более сложная. Попробуйте подключиться с помощью “ssh codeuser@your-server -v”
На Ubuntu 18.04 я просто забыл добавить публичный ключ моего клиента в файл разрешенных ключей (этот пост заставил меня задуматься о файле authorized_keys: https://superuser.com/a/1337741/413936).
chmod 700 ~/.ssh
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
Затем добавьте публичный ключ вашего клиента в файл authorized_keys
.
Но по какой-то причине мне не нужно было добавлять PasswordAuthentication yes
в /etc/ssh/sshd_config на Ubuntu 18.04.3 LTS, как упоминали другие. Для ясности, у меня это закомментировано так: # PubkeyAuthentication yes
, и я перезапустил службы ssh и sshd и все еще мог подключиться через ssh.
Я наткнулся на эту тему после создания нового пользователя и не смог подключиться по SSH к новому пользователю.
Мне удалось это исправить, после того как я посмотрел на группу и пользователя папки .ssh и файл authorized_keys. Они были установлены на root:root, потому что я скопировал их из папки другого пользователя с помощью sudo.
Итак, я исправил это с помощью:
sudo chown new_user:new_user /home/new_user/.ssh/
sudo chown new_user:new_user /home/new_user/.ssh/authorized_keys
Надеюсь, это поможет
Проверьте /var/log/auth.log
на наличие ошибок. Вы назначили пользователю codeuser пароль с помощью команды passwd
?
Попробуйте проверить /var/log/auth.log на наличие возможных сообщений об ошибках.
Также попросите пользователя попробовать войти с помощью ssh -v, для более подробного вывода.
Надеюсь, это поможет!
Довольно старый пост, но все еще актуальный. Стоит проверить журналы, как упомянул Марко Рамос выше. В моем случае с Debian 9 группа должна быть наделена разрешениями для /var/log/auth.log
Nov 23 23:10:46 AreNAS sshd[6765]: User are from 192.168.0.36 не разрешено, потому что ни одна из групп пользователя не указана в AllowGroups
Убедитесь, что публичный ключ правильный в этом месте:
/home/newUsername/.ssh/authorized_keys
У меня была похожая проблема при настройке приватного git-сервера на Raspberry Pi.
Я заметил следующее в /etc/ssh/sshd_config
...
AllowGroups root _ssh
...
Я добавил своего нового пользователя <username> в группу _ssh
sudo usermod -a -G _ssh <username>
Вот и все!
Остальную часть настройки можно найти здесь
На новых установках Debian (возможно, и других дистрибутивов) вам необходимо включить вход с паролем. Это начало происходить недавно. AllowUsers вам не поможет, PermitRootLogin yes вам не поможет.
Конфигурация по умолчанию в /etc/ssh/sshd_config:
# Чтобы отключить перенаправленные пароли в открытом тексте, измените на no здесь!
#PasswordAuthentication yes
но это не позволит вам подключиться через ssh с обычным текстовым паролем. Вам нужно будет убрать комментарий, перезапустить sshd, вставить ваш ssh-ключ и снова закомментировать или оставить его включенным.
Ответ или решение
Не удается получить доступ к SSH для нового пользователя: как решить проблему
Введение
Когда вы создаете нового пользователя в Ubuntu и сталкиваетесь с проблемами доступа через SSH, стоит рассмотреть несколько основных направлений для диагностики и устранения неполадок. Ниже представлены ключевые шаги, которые вам следует пройти, чтобы устранить проблемы с доступом пользователя codeuser
.
1. Проверьте настройки SSH
Конфигурация sshd_config
Первое, что нужно сделать, — это проверить файл конфигурации SSH, обычно находящийся по пути /etc/ssh/sshd_config
. В этом файле могут быть указаны ограничения для доступа новых пользователей. Убедитесь, что в файле не содержится строчка, ограничивающая доступ, например:
AllowUsers admin
Если такая строка присутствует, вам нужно либо удалить ее, либо добавить пользователя codeuser
. После внесения изменений не забудьте перезапустить службу SSH:
sudo systemctl restart ssh
Права доступа
Убедитесь, что на уровне файла доступны следующие параметры:
- Проверьте, что для
PasswordAuthentication
установлено значениеyes
:
# PasswordAuthentication yes
Если эта строка закомментирована, раскомментируйте ее и перезапустите SSH.
2. Настройка пользователя и прав доступа codeuser
Убедитесь, что у пользователя есть пароль
Проверьте, установлен ли пароль для codeuser
. Если он отсутствует, выполните следующую команду, чтобы установить его:
sudo passwd codeuser
Проверьте папку .ssh
и файл authorized_keys
Если вы используете аутентификацию по ключу, необходимо удостовериться, что папка .ssh
и файл authorized_keys
имеют правильные права доступа и владельца. Выполните команды:
sudo chown -R codeuser:codeuser /home/codeuser/.ssh
chmod 700 /home/codeuser/.ssh
chmod 600 /home/codeuser/.ssh/authorized_keys
Убедитесь, что в файле authorized_keys
находится правильный публичный ключ для аутентификации.
3. Анализ журналов
При возникновении проблем доступа всегда полезно изучить журналы системы. Проверьте файл /var/log/auth.log
на наличие сообщений об ошибках, которые могут указать на дополнительные проблемы:
sudo tail -f /var/log/auth.log
Это поможет вам выявить, почему codeuser
может не получать доступ.
4. Дополнительные проверки
- Группы пользователя: Убедитесь, что пользователь
codeuser
не входит в группы, для которых наложены ограничения в SSH. Если требуется, вы можете добавить его в такие группы при помощи команды:
sudo usermod -aG <group> codeuser
- Перезапуск SSH и доступ по ключу: Если вы добавили ключи или изменили конфигурацию, убедитесь, что служба SSH была перезапущена, и попробуйте еще раз подключиться по SSH, используя команду:
ssh -v codeuser@your-server
Заключение
Возможные проблемы с SSH доступом нового пользователя могут возникнуть по различным причинам, включая конфигурацию SSH, права файлов и учетные данные пользователя. Пройдя предложенные шаги, вы сможете диагностировать и решить большинство типичных проблем. Для дальнейшего разбирательства используйте диагностику через журнал и убедитесь, что ваш сервис SSH функционирует корректно после изменений.