Я только что создал новый виртуальный сервер Ubuntu, и я нахожусь в процессе его защиты для производственного использования. В настоящее время у меня есть учетная запись root. Я хочу сделать следующее:
- Создайте нового пользователя (давайте назовем его
jim
для остальной части этого). Я хочу, чтобы у них был/home/
каталог. - Дайте
jim
SSH доступ. - Разрешить ,
jim
чтобыsu
искоренять , но не выполнятьsudo
операции. - Отключите корневой доступ по SSH.
- Переместите SSHd в нестандартный порт, чтобы остановить грубые атаки.
Моя проблема заключается в первых двух пунктах. Я уже нашел, useradd
но по какой-то причине я не могу войти в систему как пользователь, созданный с помощью SSH. Нужно ли бить SSHd, чтобы это позволить?
/etc/nologin
файл, но он пуст. Я удалил его и перезапустить SSH , но это все-таки просто реагирует ,Permission denied, please try again.
когда я пытаюсь войти.Ответы:
Редактировать (как root)
/etc/ssh/sshd_config
. Добавьте к нему следующее:Port 1234
заставляет SSH прослушивать порт 1234. Вы можете использовать любой неиспользуемый порт от 1 до 65535. Рекомендуется выбрать привилегированный порт (порт 1-1024), который может использоваться только root. Если ваш SSH-демон по какой-то причине перестает работать, мошенническое приложение не может перехватить соединение.PermitRootLogin
запрещает прямой вход в системуAllowUsers jim
позволяет пользователюjim
войти через SSH. Если вам не нужно входить откуда угодно, вы можете сделать это более безопасным, ограничив jim IP-адресом (замените 1.2.3.4 на ваш фактический IP-адрес):Изменения в файле конфигурации
/etc/ssh/sshd_config
не применяются немедленно, чтобы перезагрузить конфигурацию, запустите:источник
root
логин, однако, (возможно , вы до сих пор настройки сервера), необходимо установить ,PermitRootLogin
чтобыyes
и добавитьroot
кAllowUsers
.useradd -m -G sudo,adm -s /bin/bash mecharok
иpasswd mecharok
AllowUsers username1,username2
для ограничения входа в систему SSH для этих пользователей. Убедитесь, чтоsshd
перезагружен. Если это не поможет, создайте новый вопрос.SSH очень требователен к директории и файлам. Убедитесь что:
Скопируйте ваш открытый ключ в файл author_keys.
Там нет НИКАКОЙ необходимости добавления пользователя в / и т.д. / SSH / ssh_config.
источник
~./ssh
от имени пользователя root и никогда не передавал права собственности пользователю./root/.ssh/authorized_keys
вместо/home/bob/.ssh/authorized_keys
.ssh_config
. Настройка этого каталога и файла было достаточно.sudo su --login {user}
) и запуститьssh-keygen
-> Папка ".ssh", ключ + сертификат и права доступа завершены. Просто создайте авторизованные ключи согласно вашим инструкциям.Там будут подсказки,
/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
./etc/ssh
,/home/jim/.ssh
,/home/jim/.ssh/*
и т.д.Я также рекомендовал бы использовать adduser (вместо useradd ) для добавления новых пользователей; он немного более дружелюбен в отношении различных настроек учетной записи по умолчанию.
Пока пользователь не входит в
admin
группу, он не сможет получить права суперпользователя. Для них использовать су , вам нужно будет установить пароль администратора (passwd root
), после чего я рекомендую установитьPermitRootLogin=no
в/etc/ssh/sshd_config
.источник
Я могу ошибаться, но мне всегда нужно установить демон сервера, прежде чем я смогу подключиться (по крайней мере, на рабочем столе) ssh установлен по умолчанию, но это всего лишь клиент
эта команда устанавливает сервер
sudo apt-get install openssh-server
Вы можете изменить порт и остановить вход в систему root, отредактировав
/etc/ssh/sshd_config
Это требует от вас перезапустить службу, хотя.
sudo service ssh restart
источник
sudo /etc/init.d/ssh reload
вместо этого вы можете перезагрузить конфигурацию , но хорошая информация.У Джима не будет доступа по SSH, пока вы не установите пароль. От имени пользователя root выполните:
Если эта команда возвращает "!" символ, то логин отключен для этой учетной записи. Выполнение
passwd jim
от имени пользователя root попросит вас ввести новую и подтвержденную строку пароля, после чего приведенная выше команда grep должна вернуть хеш-строку, представляющую пароль для jim.Также убедитесь, что у jim есть оболочка входа в систему, установленная по умолчанию, и существующий домашний каталог.
Обратите внимание на пост lekensteyn для получения информации об изменении настроек сервера SSH.
источник
В моем случае у меня была группа, которой был разрешен доступ, и пользователь не был ее частью. Это решило это для меня.
Используя приведенный выше пример с пользователем,
jim
примите члена группы вjim
качестве единственной группы (введитеgroups
команду при входе в систему,jim
чтобы найти группы, частью которых вы являетесь). В моем/etc/ssh/sshd_config
файле былаAllowGroups sshusers
запись, и мне нужно было добавитьjim
ее вsshusers
группу. Ниже показано, как это будет сделано:Замените вашу группу и пользователя в соответствии с вашей конфигурацией.
источник
jim
в качестве фиктивного пользователя для предоставления контекста. статья здесь объясняет это хорошо.Там могут быть некоторые случаи, что
PasswordAuthentication
по умолчанию отключен.Пожалуйста, проверьте
/etc/ssh/sshd_config
и убедитесь, чтоPasswordAuthentication
атрибут установлен вyes
.источник
@Lekensteyn Я не могу оставить комментарий к ответу на вопрос, потому что у меня нет репутации - но я попытался добавить
в мой файл / etc / ssh / sshd_config, и теперь я больше не могу ssh с моим существующим пользователем или новым пользователем.
источник
AllowUsers existingUser@* newUser@*