Secure Shell (SSH) é um método para acessar uma máquina remota de forma segura em uma rede não segura. Começa com uma conexão TCP do cliente SSH para a máquina remota (servidor SSH). As duas máquinas trocam versões SSH, negociam algoritmos criptográficos e executam um protocolo de troca de chaves.
O servidor SSH envia a chave pública e uma assinatura, que o cliente verifica. Essa chave de host é verificada no arquivo known_hosts. As duas máquinas derivam chaves de sessão separadamente e nunca as compartilham na rede.
Em seguida, o cliente SSH envia a chave pública para autenticação. O servidor SSH a compara com authorized_keys, e o cliente assina a solicitação de autenticação com a chave privada, enviando uma assinatura digital para o servidor. A chave privada nunca sai da sua máquina.
O servidor verifica a assinatura com a chave pública do cliente, concluindo a autenticação SSH e abrindo a sessão para comunicação.
Fonte: ByteByteGo · Resumido por HeadlinesBriefing