Linux root access denied ssh

Remote login as root in ubuntu

It is a security risk to enable root login via ssh. Because, malicious programs may attempt brute force login on root@some-server. And if they succeed they can do what they want.

You want to login as root. You don’t need to. Login using your personal account and use sudo as needed.

10 Answers 10

check the /etc/ssh/sshd_config whether the configure PermitRootLogin yes below # Authentication: . If not yes , it doesn’t permit login as root.

Then, restart ssh service to apply the changes: sudo service sshd restart

For Ubuntu 23.04 sudo service ssh restart

By default, the Root account password is locked in Ubuntu.

Please keep in mind, a substantial number of Ubuntu users are new to Linux. There is a learning curve associated with any OS and many new users try to take shortcuts by enabling the root account, logging in as root, and changing ownership of system files.

It talks at length about why it’s been done this way.

Enabling the root account:

To enable the Root account (i.e. set a password) use:

Use at your own risk!

Logging in to X as root may cause very serious trouble. If you believe you need a root account to perform a certain action, please consult the official support channels first, to make sure there is not a better alternative.

Do not enable the root account. Do not set a password for the root account.

A better way is to allow root login using public key authentication, not with password. The reasoning is explained in the Debian mailing list archives.

  1. Open /etc/ssh/sshd_config and check if PermitRootLogin is set to yes . If not, then set it to yes and restart ssh with sudo service ssh restart
  2. Create the .ssh directory in root’s home if it doesn’t exist and make sure it has strict permissions:
sudo -i mkdir -p .ssh sudo -i chmod 700 .ssh 
cat id_rsa.pub | sudo -i tee -a .ssh/authorized_keys sudo -i chmod 600 .ssh/authorized_keys 

With this setup you should be able to login as root using your private key.

If you have previously enabled the root account, make sure to disable it now:

Источник

Как разрешить пользователю root заходить по SSH в системах Linux Ubuntu

Обновлено

Обновлено: 04.03.2023 Опубликовано: 07.01.2017

По умолчанию, в некоторых системах Linux (например, Ubuntu) для суперпользователя root вход по SSH с использованием пароля не работает. При попытке подключиться можно увидеть сообщение «access denied» или «permission denied». Такая настройка необходима для обеспечения большей безопасности системе. Однако, если требуется предоставить возможность подключаться по SSH от пользователя root, необходимо выполнить нижеописанное.

* Инструкция подойдет для большинства UNIX-систем.

С использованием сертификата

Система настроена таким образом, чтобы можно было подключиться под пользователем root с использованием сертификата. Рассмотрим, как это сделать.

На любом компьютере с Linux сгенерируем пару ключей командой:

. будет создано 2 файла id_ed25519.pub и id_ed25519. Содержимое файла id_ed25519.pub фиксируем.

Идем на наш целевой компьютер Ubuntu. Создаем каталог:

Вставляем в него содержимое файла id_ed25519.pub.

Теперь с компьютера, где были созданы сертификаты можно зайти на компьютер с Ubuntu:

Теперь с использованием ключа из файла id_ed25519 можно подключиться к нашему компьютеру Ubuntu без пароля.

По паролю

Для начала, необходимо создать пароль пользователю root следующей командой:

После нажатия Enter вводим дважды пароль.

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

и редактируем параметр PermitRootLogin — задаем значение yes:

* если параметр закомментирован, снимаем комментарий.
** по умолчанию, значение может быть without-password или prohibit-password — оно разрешает вход для root средствами GSSAPI (не парольной аутентификации), например, смарт-карты или отпечатка пальца.

systemctl restart ssh || systemctl restart sshd

или в старых версиях без systemd:

service ssh restart || service sshd restart

Источник

не логинится root через ssh, а через su — ok

почему если зайти по ssh юзером и потом su, то всё ок
а если напрямую через ssh root@1.2.3.4, то «Permission denied».

Jun 16 11:39:08 asterisk sshd[11166]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.56 user=root Jun 16 11:39:08 asterisk sshd[11166]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root" Jun 16 11:39:10 asterisk sshd[11166]: Failed password for root from 192.168.1.56 port 50128 ssh2

Потому что настроено либо в конфиге sshd либо средствами pam для sshd ограничение разрешающее авторизовываться через ssh пользователям чей uid больше или равен 1000.

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

kostik87 ★★★★★ ( 16.06.22 11:45:02 MSK )
Последнее исправление: kostik87 16.06.22 11:47:59 MSK (всего исправлений: 2)

я с рута лезу.
да и scp работал всегда

tip78 ( 16.06.22 11:48:15 MSK )
Последнее исправление: tip78 16.06.22 11:48:40 MSK (всего исправлений: 1)

граничение разрешающее авторизовываться через ssh пользователям чей uid больше или равен 1000.

Что тебе не понятно в этом предложении?

У root uid = 0, 0 меньше 1000. В условие не попадает.

По умолчанию в sshd разрешена авторизация root только по ключам.

kostik87 ★★★★★ ( 16.06.22 11:51:08 MSK )
Последнее исправление: kostik87 16.06.22 11:52:59 MSK (всего исправлений: 2)

да непонятно откуда оно взялось — это ограничение
до сегодняшнего дня не было ничего

в /etc/pam.d на удалённом хосте:

grep succeed * fingerprint-auth:account sufficient pam_succeed_if.so uid < 1000 quiet fingerprint-auth:session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid fingerprint-auth-ac:account sufficient pam_succeed_if.so uid < 1000 quiet fingerprint-auth-ac:session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid password-auth:auth requisite pam_succeed_if.so uid >= 1000 quiet_success password-auth:account sufficient pam_succeed_if.so uid < 1000 quiet password-auth:session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid password-auth-ac:auth requisite pam_succeed_if.so uid >= 1000 quiet_success password-auth-ac:account sufficient pam_succeed_if.so uid < 1000 quiet password-auth-ac:session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid postlogin:session [success=1 default=ignore] pam_succeed_if.so service !~ gdm* service !~ su* quiet postlogin-ac:session [success=1 default=ignore] pam_succeed_if.so service !~ gdm* service !~ su* quiet smartcard-auth:account sufficient pam_succeed_if.so uid < 1000 quiet smartcard-auth:session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid smartcard-auth-ac:account sufficient pam_succeed_if.so uid < 1000 quiet smartcard-auth-ac:session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid su:account sufficient pam_succeed_if.so uid = 0 use_uid quiet system-auth:auth requisite pam_succeed_if.so uid >= 1000 quiet_success system-auth:account sufficient pam_succeed_if.so uid < 1000 quiet system-auth:session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid system-auth-ac:auth requisite pam_succeed_if.so uid >= 1000 quiet_success system-auth-ac:account sufficient pam_succeed_if.so uid < 1000 quiet system-auth-ac:session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid 

tip78 ( 16.06.22 11:56:15 MSK )
Последнее исправление: tip78 16.06.22 11:57:15 MSK (всего исправлений: 1)

Показывай /etc/pam.d/system-auth целиком - там порядок опций важен.

Failed password for root from 192.168.1.56 port 50128 ssh2 

Повторяю, по умолчанию в конфигурационном файле /etc/ssh/sshd_config отсутствует опция ‘PermitRootLogin yes’, разрешающая автризовываться под root по паролю.

Без этой опции разрешена авторизация под root только по ключам.

А ты как раз авторизовываешься через ввод пароля.

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

Включи опцию разрешающую авторизовываться по паролю для пользователя root, а лучше авторизовывайся по ssh ключам.

всё, порядок, спасибо
я походу убрал из конфига, а перезагрузить забыл, а сегодня как раз была перезагрузка

tip78 ( 16.06.22 12:06:26 MSK )
Последнее исправление: tip78 16.06.22 12:06:57 MSK (всего исправлений: 1)

чё-то опять эта херня приключилась
причём даже su не пускает на рута.
юзер с рутовыми правами может залезть, но и то почему-то через раз. (из дома удалённо через сервер залезть не смог, а из офиса локально могу), но su ему не даёт
а рут вообще никак не лезет.
при этом каждую ночь туда лазает скрипт через scp по этому рутовуму паролю

попроси работодателя тебя уволить

спасибо, дорогой, но я сам работодатель

и кстати, там вообще виртуалка с чужим дистрибутивом (CentOS), и чё он там хочет - загадка

по ключу рута пустило
хотя Permit включён, но по паролю БЕЗ ключа теперь не пускает, а раньше пускало

tip78 ( 21.07.22 21:39:26 MSK )
Последнее исправление: tip78 21.07.22 21:39:54 MSK (всего исправлений: 1)

Потому что логин из-под рута запрещен, очевидно)

да вот откуда - вопрос
чё-то в центосе там накрутили или где?

 PermitRootLogin Specifies whether root can log in using ssh(1). The argument must be yes, prohibit-password, forced-commands-only, or no. The default is prohibit-password. If this option is set to prohibit-password (or its deprecated alias, without-password), password and keyboard-interactive authentication are disabled for root. If this option is set to forced-commands-only, root login with public key authentication will be allowed, but only if the command option has been specified (which may be useful for taking remote backups even if root login is normally not allowed). All other authentication methods are disabled for root. If this option is set to no, root is not allowed to log in. 

Источник

How to enable ssh root access on Ubuntu 14.04

I´d like to enable the ssh root access on Ubuntu 14.04. Editing the /etc/ssh_config (PermitRootLogin yes) didn't affect anything.

5 Answers 5

Simply adding a password for root is not enough for Ubuntu 14.04 Server.

You also need to edit /etc/ssh/sshd_config , and comment out the following line:

PermitRootLogin without-password 

Just below it, add the following line:

For Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-59-generic x86_64) PermitRootLogin without-password has been replaced by PermitRootLogin prohibit-password .

If doing this while ssh or scp tells you "Permission denied, please try again" in another window, quit and retry that ssh (or scp) instead of just re-typing in the password.

Once you copy your ssh key using ssh-copy-id or another method, you can uncomment PermitRootLogin without-password and comment out your new PermitRootLogin yes

You need to setup a password for the root account and then it will work.

Enter same password twice.

P.S. After modifying /etc/ssh/sshd_config don't forget to reload the openssh server.

This will work; but to the OP: think twice before doing it. If you still do, and your PC is on the internet, consider adding fail2ban to the system. (This comment is related to enabling root login via ssh; having or not a local password for root is just a matter of taste).

Changes in /etc/ssh/sshd_config

You may also have to check value of PasswordAuthentication. If it is set to no then set to yes

I purged openssh-service and openssh-client on both systems ( Kali Linux and Ubuntu 18 ), reinstalled them, applied this answer and everytihng worked perfectly.

In my sshd_config, since it has "UsePam yes", and a line "DenyGroups root", besides all above actions, I need to remove the "root" for DenyGroups as well to make it work.

For 14.04 you would have to comment below line in /etc/ssh/sshd_config

Instead of disabling file mode checking, it would be better to ensure, that /root/.ssh and the files therein are not readable by any other user than root.

For me, none of these steps worked, I've even tried something I wouldn't ever try for something else then a toy vm: PermitRootLogin without-password

The only thing that worked for me was disabling the PAM module for this:

This option is normally at the very end of the file. To be honest, I don't know the real drawbacks of this, but since you're not supposed to allow root login online, I guess it's okay for a private dev-vm.

Nevertheless, set a strong password, always. Nope this is not an exception. Not even only this time.

PermitRootLogin without-password doesn't mean the root user gets to log in without authentication. It means the root user isn't allowed to log in with a password. Instead, the root user must log in utilizing RSA keys, which is more secure.

@Craig the problem I'm referring to is not that root would then need to use RSA SSH-Keys. The problem is that root is a user everyone knocking on the door of your SSH-Server knows exists. Which is not a good thing in my opinion. But feel free to let root login via SSH, but as you said, at least make sure it's using keys to do so!

You said you wouldn't try PermitRootLogin without-password for anything but a toy VM. That is what you use to disable password authentication for root, so that the only way root can logon is using RSA keys. You did not state that you tried that option with RSA keys. If you tried that option without keys, there's no way it could succeed. If you use PermitRootLogin without-password , then you cannot log on using password authentication at all, not with a strong password, not with a blank password, not at all.

Источник

Читайте также:  Посмотреть какая папка сколько весит linux
Оцените статью
Adblock
detector