Você já tentou usar as aspas duplas? Dentro de aspas simples, o BASH não expandirá a variável $ username.
Por exemplo, se $ username = bob, esse comando expandirá a variável:
ssh user@hostname "useradd $username; mkdir /home/$username;"
a parte citada será expandida para:
useradd bob; mkdir /home/bob;
Mas, se você usa aspas simples, assim:
ssh user@hostname 'useradd $username; mkdir /home/$username;'
Em seguida, a parte citada permanece inalterada. Será interpretado como:
useradd $username; mkdir /home/$username;
BTW, o; no final, após $ username, não é necessário.