За документы , read_until
спецификации (цитата, мой акцент):
Читать до заданной байтовой строки,
ожидается, встречается
Вы не передаете строку байт в Python 3, например ::
tn.read_until("User Name: ")
Вместо этого вы передаете строку text , которая в Python 3 означает строку Unicode.
Итак, измените это на
tn.read_until(b"User Name: ")
форма b"..."
- это один из способов указать литерал byte string.
(Аналогично для других подобных вызовов, конечно).