Como utilizar chaves SSH para autenticação
Porquê chaves?
A autenticação por chave pública baseia-se num par de chaves específico de cada utilizador, o par de chave pública e chave privada. A chave pública gerada na máquina do cliente SSH é copiada para o ficheiro authorized_keys do servidor SSH, e é assim que o servidor SSH passa a considerar a chave fidedigna. Durante o início de sessão, o servidor envia um desafio que só o detentor da chave privada correspondente consegue assinar. A palavra-passe nunca é transmitida.
Como configurar a autenticação SSH por chaves
Crie o diretório das chaves.
mkdir -p ~/.ssh
Proteja o diretório .ssh, para que só o utilizador do SSH lhe aceda.
chmod 700 ~/.ssh
Gere o par de chaves.
ssh-keygen -t rsa
Siga as mensagens no ecrã para criar as chaves de forma interativa. Indique uma palavra-passe (opcional) para proteger a chave privada. Se definir uma palavra-passe, esta será pedida em cada sessão SSH.
Copie a chave pública para o authorized_keys do servidor.
Pode copiar o texto do ficheiro ~/.ssh/id_rsa.pub e colá-lo no ficheiro ~/.ssh/authorized_keys do servidor, ou utilizar o utilitário ssh-copy-id, no formato abaixo, para transferir a chave.
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
A opção -i indica o ficheiro de identidade, ou seja, a chave pública.
Desative a autenticação por palavra-passe e ative a autenticação por chave pública.
Inicie sessão no servidor como root, abra o ficheiro /etc/ssh/sshd_config com qualquer editor de texto e confirme que as diretivas têm os valores abaixo.
PubkeyAuthentication yes
PasswordAuthentication no
Se a chave for para o utilizador root, defina PermitRootLogin prohibit-password, para que o root inicie sessão com chave mas nunca com palavra-passe. Para chaves novas, prefira ssh-keygen -t ed25519.
PermitRootLogin prohibit-password
Reinicie o serviço SSH no servidor e teste a ligação SSH a partir do cliente. Se encontrar problemas de ligação, utilize a opção -vv no comando ssh.
ssh -vv root@yourhost.com
Sugestões
A propriedade e as permissões do diretório devem pertencer a esse utilizador: chmod 600 ~/.ssh/id_rsa
Das FAQ da EuroVPS.
Mais na categoria «Guias»O seu próximo parceiro de infraestrutura
Ainda tem
uma pergunta?
Diga-nos o que está a tentar fazer. Um engenheiro vai ler e responder.
+357 222 32280
Comecemos pela sua infraestrutura.
Um pouco de contexto ajuda-nos a começar a conversa certa.
