Isso não é tanto uma questão técnica quanto conceitual. Entendo que a criptografia usada em uma chave SSH é muito mais forte que uma senha comum, mas não entendo por que é considerada mais segura.
A maioria dos tutoriais que li sugerem o uso da autenticação por chave SSH em vez da autenticação por senha. Mas meu entendimento é que quem tiver acesso a uma máquina cliente pré-aprovada poderá conectar-se ao servidor, o que significa que o nível de segurança fornecido pela chave SSH é tão forte quanto o nível de segurança do sistema físico. máquina cliente.
Por exemplo, se eu configurar uma chave SSH no meu telefone para conectar à minha máquina doméstica, caso eu perca o telefone e alguém consiga desbloqueá-la, eles poderão se conectar à minha máquina doméstica. Sei que posso remover a chave do telefone da minha máquina doméstica, mas estou vulnerável até perceber que o dispositivo cliente foi perdido / violado.
Eu entendi mal alguma coisa ou essas são preocupações válidas?
Respostas:
Se o seu serviço SSH permitir autenticação baseada em senha, o servidor SSH conectado à Internet será martelado dia e noite por redes de bots tentando adivinhar nomes de usuário e senhas. A rede bot não precisa de informações, pode apenas tentar nomes e senhas populares. Há muitas pessoas chamadas john com uma senha qwerty123. Além de qualquer outra coisa, isso obstrui seus logs.
Se o seu serviço SSH permitir apenas a autenticação de chave pública, o invasor precisará de uma cópia de uma chave privada correspondente a uma chave pública armazenada no servidor. Eles não podem apenas fazer ataques aleatórios, eles precisam ter conhecimento prévio de seus usuários e devem poder roubar uma chave privada do PC de um usuário autorizado do seu servidor SSH.
O fato de que as chaves privadas geralmente são protegidas por uma frase longa é de importância secundária.
Atualizar:
Como os comentários apontam, e como eu experimentei, mover o serviço SSH da porta 22 para uma porta numerada alta faz uma diferença drástica no número de tentativas de login não autorizadas que aparecem nos seus logs. Vale a pena fazer isso, mas eu a considero uma forma de segurança pela obscuridade (uma falsa sensação de segurança) - mais cedo ou mais tarde, as redes de bots implementam a varredura de porta furtiva lenta ou você será deliberadamente direcionado. Melhor estar preparado.
Eu sempre uso uma frase longa para proteger minha chave privada, acho que isso é de particular importância em dispositivos móveis que podem ser perdidos ou roubados com mais facilidade.
Além disso, http://xkcd.com/538/
fonte
A lógica é que existem muito mais combinações de chaves SSH do que senhas, portanto, é muito mais difícil adivinhar. O uso de chaves SSH também permite desativar a autenticação de senha, o que significa que a maioria dos ataques automatizados que circulam na Internet será inútil.
No que diz respeito à segurança física, não há diferença entre salvar uma senha e ter uma chave SSH não criptografada no dispositivo, se ela for perdida ou roubada. A única vantagem que você tem é que ninguém tem sua senha e, teoricamente, você pode garantir que todos os dispositivos possuam certificados SSH diferentes, para que você possa desativar a senha do seu telefone.
Eu acredito que também é possível proteger com senha as chaves SSH.
fonte
As senhas também podem ser comprometidas pelo monitoramento do teclado "por cima do ombro". Além disso, o uso de senhas semelhantes em muitos lugares é uma fraqueza, especialmente se a senha é usada algumas vezes em um computador menos seguro com potenciais keyloggers.
Você está certo de que uma chave não criptografada pode ser lida no disco rígido se o computador for roubado - então criptografe-o com uma senha.
Se o seu computador estiver comprometido por malware, você estará cheio de qualquer maneira .. - alguém pode obter a chave criptografada e registrar sua senha com senha.
fonte