SSH просит пароль, но я могу получить через последовательный порт без него

Это интересно.

Это расширяется до uh:

echo `echo \`echo uh\``

и даже не

echo "`echo \`echo uh\``"

подавляет внутреннее расширение.

В оболочках bash и POSIX (тире) есть $ () в качестве удобной альтернативы обратным кавычкам.

Интересно, что подстановка внутреннего процесса не расширяется с помощью $ () независимо от того, цитируется он или нет, или используется внутренняя подстановка обратные кавычки или $ () :

$ echo $(echo \$\(echo uh\))
  $(echo uh)
$ echo $(echo \`echo uh\`)
  `echo uh`

Неявное раскрытие с обратными кавычками не выглядит очень безопасным. Я бы придерживался $ () , особенно если вы хотите вложить.

0
08.11.2018, 03:24
1 ответ

Сервер sshdвсегда будет запрашивать пароль, если только вы не настроите его на разрешение пустых паролей. Кроме того, в большинстве текущих конфигураций по умолчанию sshdнастроен запрет на вход в систему root или разрешение root только с использованием аутентификации с открытым ключом.

Таким образом, вы должны убедиться, что root может войти в систему через ssh и разрешены пустые пароли:

/etc/ssh/sshd_config

PermitRootLogin yes
...
PasswordAuthentication yes
PermitEmptyPasswords yes
...

Вам также потребуется установить пустой пароль root. Это не то же самое, что отсутствие пароля. Отсутствие пароля определяется либо несуществующим -паролем, либо недопустимым паролем. В любом из этих случаев потребуется неявный, но невозможный для ввода пароль. Это, конечно, означает, что rootне сможет войти напрямую. Итак, empty password— это то, что требуется.

Обратите внимание:

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

0
28.01.2020, 04:10

Теги

Похожие вопросы