Как отметил @Vasily Angapov, ваша кодировка base64 неверна.
Когда вы делаете следующее, вы кодируете базу для root \ n
echo "root" | base64
Вывод:
cm9vdAo =
Если вы хотите удалить символ новой строки, вы должны использовать опцию -n :
echo -n "root" | base64
Вывод:
cm9vdA ==
Еще лучше сделать следующее:
echo -n "root" | base64 -w 0
Таким образом base64
будетне вставлять новые строки в более длинные выходы.
Также вы можете проверить правильность кодировки, расшифровав закодированный текст:
echo "cm9vdA==" | base64 --decode
Выходные данные не должны создавать новую строку.