But how do I decide which one to use and which one is most secure in what situation?
Uma chave pública provavelmente é sempre mais segura que uma senha, desde que a chave privada correspondente tenha uma senha. Dessa forma, mesmo que alguém adquira a chave privada, ela ainda não é utilizável, a menos que também tenha a senha, ao passo que, com uma senha, é tudo o que é necessário.
No entanto, brute forçando uma senha para uma chave roubada é provavelmente mais fácil do que brute forçando uma senha para um login ssh, já que o último será mais lento e óbvio - o servidor notará as falhas repetidas e poderá restringir e reportar o invasor IP. Uma senha de 10 caracteres usando caracteres Base64 tem 64 ^ 10 = 1152921504606846976 possibilidades, por isso pode ser viável para uma pessoa inteligente para quebrar isso, se eles podem tentar com o seu próprio equipamento em uma cópia da chave.
Naturalmente, você não pode forçar os usuários a proteger com senha suas chaves privadas (a menos que você as emita). Mas você não pode forçar as pessoas a terem cuidado com as senhas em geral, então uma senha sozinha não resolve o problema do "usuário irresponsável".
Can anybody give me some real life example about when to choose public key and when to choose password?
Algumas pessoas acham que as chaves são um problema porque você precisa armazená-las. No entanto, o uso de um login de senha é seu próprio incômodo, se você faz login e logoff com frequência, já que deve redigitar a senha toda vez.