Отказано в доступе для root @ localhost для подключения ssh

28

Я только что установил Ubuntu 14.04 и LAMP на этом. Затем я хотел настроить свой сервер, поэтому опробовал этот учебник.

Когда я даю команду:

ssh root@localhost

Я получаю: В доступе отказано, пожалуйста, попробуйте еще раз. Я вошел в систему как пользователь root с помощью команды:

sudo -i

Я также попробовал то же самое, войдя в систему через:

sudo -s

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

Может ли кто-нибудь помочь мне здесь?

PS: я изучил этот вопрос, но, похоже, не работал для меня.

vnay92
источник

Ответы:

57

По умолчанию сервер SSH запрещает вход на основе пароля для пользователя root. В /etc/ssh/sshd_config, изменить:

PermitRootLogin without-password

в

PermitRootLogin yes

И перезапустите SSH:

sudo service ssh restart

Или вы можете использовать ключи SSH. Если у вас его нет, создайте его с помощью ssh-keygen(придерживайтесь значения по умолчанию для ключа и пропустите пароль, если хотите). Затем выполните sudo -s(или любой другой предпочитаемый вами способ получения прав root) и добавьте ключ SSH в /root/.ssh/authorized_keys:

cat /home/user/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
Мур
источник
Я получаю эту ошибку: cat: /home/user/.ssh/id_rsa.pub: Нет такого файла или каталога.
vnay92
Ах. Сожалею. Я предполагал, что у вас есть ключ SSH. Как ваш пользователь, сделайте ssh-keygen(пропустите пароль для ключа SSH, если хотите, и придерживайтесь значений по умолчанию для остальных), чтобы создать его. Кроме того, я надеюсь, что вы заменили userсвое действительное имя пользователя.
Муру
Оба метода не сработали для меня! Я даже проверил мою домашнюю папку; Пусто. Что мне делать?
Heich-B
5

В некоторых случаях после изменения

PermitRootLogin yes

необходимо проверить этот конфиг:

DenyUsers root
AllowUsers saeid

и для включения логина необходимо изменить на:

#DenyUsers root
AllowUsers root OtherUser
Amini
источник
4

Если вы не указали пароль для пользователя root, и вы пытаетесь запустить команду на спарк или Haddop, как ./sbin/stop-all.sh or./sbin/start-all.sh . Если у вас нет пароля root, вы можете установить его, используя

sudo passwd

и пожарные команды.

Д Нилеш
источник
1

У меня была похожая проблема с этим. Мне нужно было два компьютера , один на Ubuntu и другой на Arch , чтобы синхронизировать файлы через Unison, но столкнулся с той же ошибкой отказа в разрешении. Просто ради тех, у кого такая же проблема, как и у меня, вот что я сделал:

Первое: установлена ​​одинаковая версия Unison на обоих ПК. Это было немного сложно, так как тот, что был доступен в центре программного обеспечения, был позади того, что было легко доступно для Arch. Итак, я не смог найти более высокую версию для Ubuntu, поэтому я заменил версию на Arch более низкой. Нашел один здесь: http://zdia.de/downloads/unison-2.40.102-linux-x86_64 . Эта же версия находится в программном центре для Ubuntu.

Второе: выполните следующие действия: https://www.howtoforge.com/setting-up-unison-file-synchronization-between-two-servers-on-debian-squeeze (Примечание: Arch был моим сервером 1, а Ubuntu был мой сервер 2.)

Я столкнулся с проблемой на шаге 3, когда я попытался ssh-copy. Но это было решено путем изменения "id_dsa.pub" в "id_rsa.pub" в строке "ssh-copy-id -i $ HOME / .ssh / id_dsa.pub root@192.168.0.101". Вероятно, моя вина, поскольку я забыл добавить "-t dsa". В любом случае, попробуйте сначала оригинальную команду. Если вы получили ошибку, затем измените на rsa.

Выполнив шаги, описанные выше, я обнаружил, что Unison все еще не может подключиться к другому серверу, и я не могу войти (без Unison) через ssh на другой сервер. Наконец, после нескольких часов поиска в Google, меня привели на эту страницу, и ответ, полученный моим Муру, заключил сделку.

После применения я теперь могу войти через SSH на сервер 2.

Поэтому я запустил Unison, исправил настройки профиля и альта!

Джош Базз
источник