O primeiro conjunto de aspas é comido pela linha de comando para su , e o segundo conjunto pela linha de comando para ssh , de modo que a cotação { print $1} seja realmente vista como três argumentos separados por awk . Escape as aspas ( e $ e qualquer outro caractere especial que você possa usar):
su - admin -c "ssh $i awk -F: \'{ print \}\' /etc/passwd"
Ou:
su - admin -c "ssh $i getent passwd" | awk -F: '{print $1}'