Войти как root через SSH, не зная пароля (sudo -s)?

Войти как root через SSH, не зная пароля (sudo -s)?

Я подключаюсь по SSH к серверу с помощью:

ssh user@host

и затем я меняю статус пользователя root с помощью:

sudo -s

указав свой собственный пароль, а не пароль пользователя root - насколько я понимаю, это работает, потому что я нахожусь в файле sudoers.

Можно ли как-то войти в систему по SSH и переключиться на пользователя root за один шаг, даже если у меня нет пароля пользователя root?

Дело в том, что я хотел бы избежать необходимости вводить пароль дважды.

решение1

У вас есть 2 простых способа добиться этого:

  1. Вы позволяетекореньпользователь может войти через ssh, вы можете сделать это, отредактировав файл /etc/ssh/sshd_configи установив PermitRootLoginзначениеистинный, это позволит пользователю root подключаться через ssh.
  2. Вы создаете пользовательский скрипт для вашего пользователя ssh, чтобы автоматически входить в систему как root. Это можно сделать через файл /etc/passwd, вы заметите, что ваш пользователь будет выглядеть примерно так:

your_user:x:1001:1001:Oqhax,,,:/home/your_user:/bin/bash

Чтобы запустить пользовательский скрипт при входе в систему, вам нужно изменить часть /bin/bashи добавить свой собственный скрипт, который будет выполнять любой нужный вам код. Это может включать что-то вроде sudo -s, а затем в конце вашего пользовательского скрипта вы также можете вызвать /bin/bashеще раз, я полагаю, так что это passwdбудет выглядеть примерно так:

your_user:x:1001:1001:Oqhax,,,:/home/your_user:/bin/your_script

Помните, что второй вариант повлияет на поведение вашего входа по SSH, поэтому, чтобы проверить это, убедитесь, что вы можете справиться с ошибкой и фактической невозможностью войти в систему под своим пользователем, поэтому убедитесь, что у вас есть бэкдор-доступ по SSH через другого пользователя или root, как указано в варианте 1, по крайней мере временно, чтобы вы могли снова войти в систему и исправить любые ошибки, пока настройка не заработает.

Обновлять:В продолжение комментариев ниже, стоит отметить, что это влияет не только на вход в систему по ssh, но и на любой вход в систему этого пользователя (я подошел к этому вопросу, предполагая, что ваше требование заключается в том, чтобы этот пользователь всегда входил как root, и вы не хотите, чтобы реальный пользователь root входил в систему через ssh). Также стоит отметить, что это более простое решение по сравнению с тем, что могло бы быть гораздо более жестким и сложным, применимым только к SSH, ваш вопрос не вдается в подробности.

Как упоминалось в комментариях, вы также можете добиться того же поведения, просто /etc/ssh/sshrcя предпочитаю редактировать сырой /etc/passwd, чтобы в будущем было очень очевидно, что происходит, и это требует от вас принятия во внимание последствий, хотя sshrcэто здорово, но делает устранение неполадок в будущем немного сложнее, если вы случайно забудете, как вы настроили систему, что, будем честны, случается часто. Но это действительно хорошая привычка - вообще не раскрывать пользователя root, это даст вам гораздо больше гибкости в будущем и возможность пробовать разные вещи и настраивать свои разрешения sudoer.

Надеюсь это поможет

Связанный контент