Не удалось создать пользователя с паролем через ssh [closed]

Я попытался создать пользователя с паролем через ssh (с правами root) следующим образом:

ssh root@123.45.6.7 useradd -p $(openssl passwd -1 1234) newuser

Поступая таким образом, я мог бы успешно создать учетную запись с именем newuser, но я couldn ' t [ms]

Не имеет значения, если я добавляю двойные кавычки:

ssh root@123.45.6.7 "useradd -p $(openssl passwd -1 1234) newuser"

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

password=$(openssl passwd -1 1234)
ssh root@123.45.6.7 "useradd -p $password newuser"

Есть ли что-то, что я пропустил? Спасибо заранее!

1
задан 30 March 2017 в 09:23

1 ответ

Как отметил @heemayl, алгоритм хеш-пароля MD5 устарел, а текущие системы - новые хэши паролей на основе SHA-2, которые имеют настраиваемый коэффициент работы. Но инструмент командной строки OpenSSL, похоже, не поддерживает их.

Утилита chpasswd, однако, позволит вам изменить пароль пользователя в соответствии с системными настройками.

Это должно позволить вам создать нового пользователя и изменить свой пароль на удаленном конце.

echo "newuser:newpass" | ssh root@123.45.6.7 'useradd newuser; chpasswd' 

chpasswd берет имя пользователя и пароль из stdin, а не в командной строке , Это фактически является преимуществом, поскольку аргументы командной строки видны для всех других процессов в системе, поэтому, если запустить openssl passwd на пульте дистанционного управления, пароль будет мгновенно виден всем процессам в системе.

I «Не знаю, есть ли готовая утилита командной строки для генерации хэшей паролей, известных функции системы crypt(3). У Perl есть встроенная утилита chpasswd , но необходимо создать необходимую соль.

7
ответ дан 23 May 2018 в 00:08

Другие вопросы по тегам:

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