Sim, é completamente seguro compartilhar a chave pública do servidor, que é usada para identificação do servidor, e o homem na proteção intermediária.
Uma vez que você tenha 'aceito' a chave pública, seu cliente lembrará e avisará se ela mudar. (Que seria, no caso de um ataque Man-in-the-Middle.)
Normalmente, pode-se ir mais além e publicar a impressão digital da chave no DNS, de acordo com rfc4255:
link
Isso permite que o cliente recupere a impressão digital da chave, antes de realmente se conectar ao daemon ssh para receber a chave pública pela porta 22.
Se a impressão digital corresponder à chave pública fornecida pelo servidor; a conexão continuará.
Veja algumas instruções básicas para impor isso.
link
Quanto às chaves privadas, geradas por você ou pelo seu cliente, elas devem ser mantidas absolutamente secretas e armazenadas com uma senha strong.
Em geral, eu recomendo desabilitar senhas via SSH com a opção / etc / ssh / sshd_config:
PasswordAuthentication no
Isso só permitirá que clientes com chaves privadas listadas em ~ / .ssh / authorized_keys se conectem. Sim, você ainda pode usar senhas no prompt do sudo / su, ele simplesmente não permitirá que você efetue login com um nome de usuário e senha através do SSH. Uma chave privada é necessária.
Eu recomendaria parar por correcthorsebatterystaple dot net se você está tendo problemas para pensar em uma boa frase-senha.
(E sim, uma frase secreta pode conter espaços, algo como "Noble Sister Protection" pode ser fácil de lembrar e ainda carrega entropia suficiente para proteção suficiente - veja XKCD comic # 936 entitulado "Password Strength".)
Quando uma chave privada tem uma senha associada, o arquivo .ppk ou id_rsa que o cliente mantém é criptografado. A idéia geral é que você (o administrador do servidor) nunca saberá esta senha / senha usada para criptografar a chave do cliente. Uma vez que o cliente desbloqueia / descriptografa a chave para apresentá-lo a você (o servidor) como um problema de matemática, a autenticação continua. Não há como recuperar a senha de um cliente do servidor, nunca, a menos que sejam tolos o suficiente para fazer upload de sua chave privada - não faça isso! Usar o encaminhamento do SSH Agent ou o agente chave pageant.exe do putty no Windows .)