Проблема заключается в том, что одинарные кавычки удаляются как часть ssh
построения единой команды для передачи удаленной оболочке, поэтому вы действительно запускаете
sudo -u userB -- sh -c whoami; whoami
В общем, вы всегда хотите передайте один строковый аргумент ssh
, вместо того, чтобы объединить несколько аргументов в одну команду.
ssh userA@host "sudo -u userB -- sh -c 'whoami; whoami'"