./discourse-setup добавляет имя пользователя SMTP в начало пароля SMTP

Да, именно в этом проблема. Необходимо выполнить несколько уровней экранирования: например, когда bash считывает значение, когда bash передаёт его sed, когда sed выполняет замену, и, возможно, когда файл yml получает его. Это известная проблема:

Я изменил категорию этой темы на Support.