Como Configurar Chaves SSH
Neste tutorial, você aprenderá como configurar chaves SSH em seu dispositivo local e usar o par de chaves gerado para se conectar a uma VPS no Brasil. Esse método é o mais conveniente e fornece uma maneira mais segura de se conectar ao servidor/máquina do que simplesmente usar uma senha.
Além disso, você pode verificar o tutorial sobre Como se conectar ao seu VPS usando Putty. Será muito útil se você estiver executando o sistema operacional Windows e não sabe como se conectar a um servidor VPS.
Do que Você Precisa?
Antes de começar este guia, você precisará do seguinte:
- Acesso ao seu dispositivo local;
- Acesso ao dispositivo remoto;
- Um terminal adequado para conexão SSH.
Passo 1 – Gerando as Chaves SSH
Você pode gerar e configurar as chaves RSA no sistema Linux / Unix usando qualquer tipo de tipo de Terminal do ambiente que seu dispositivo local possui.
Depois de entrar no Terminal, você será levado para uma janela semelhante a esta:
Aqui você pode começar a escrever comandos necessários:
A primeira coisa que você precisa fazer é gerar o par de chaves em sua máquina local. Você pode criar com este comando simples:
ssh-keygen -t rsa
Depois de inserir este comando, algumas novas perguntas aparecerão:
Insira o arquivo no qual deseja salvar a chave (/home/tautvydas/.ssh/id_rsa
):
Geralmente, recomenda-se simplesmente deixá-lo como está (pressione ENTER sem digitar nada) para que o gerador de chaves possa criar o par de chaves no local padrão (neste tutorial eu inseri um nome diferente tut_id para evitar chaves duplicadas, (o dispositivo já tinha um id_rsa chaves geradas). As duas primeiras perguntas que aparecerão:
Introduza a frase de acesso (empty for no passphrase
). Então introduza a mesma frase novamente.
Agora por razões de conveniência, eu gosto de deixar os vazios também. Dessa forma, depois de definir as teclas para cima com o seu servidor remoto, você não precisará usar qualquer tipo de senha para o login. Você simplesmente digita o comando ssh user@serverip
e ele irá fazer o login enquanto as chaves são corretamente configuradas. Mas se você precisar de mais segurança, digite uma frase-senha nesta seção. Se escolher esta opção, terá de introduzir a palavra-passe sempre que ligar ao dispositivo remoto.
Você deve ver algo assim em seu Terminal:
Sua imagem gerada será diferente da minha. Bem como a impressão digital chave.
Importante! Existem duas chaves criadas aqui (PRIVATE e PUBLIC): tut_id e tut_id.pub (no seu caso, deve ser id_rsa e id_rsa.pub). Tome muito cuidado com o arquivo chamado id_rsa (esta é a chave PRIVATE), tenha apenas em seu dispositivo local e não dê a NINGUÉM.
Outro arquivo, id_rsa.pub deve ser carregado para sua máquina remota. Assim, por exemplo, se você e seu amigo estiverem trabalhando no mesmo projeto no mesmo servidor remoto, ambos podem colocar suas chaves públicas nesse servidor remoto. No próximo passo, vamos aprender como fazer isso.
Passo 2 – Copiando a Chave Pública para o Servidor Remoto
Depois de gerar o par de chaves RSA, temos que colocar nossa chave pública no servidor virtual remoto.
Há um comando simples que colocará sua chave pública diretamente no arquivo do authorized_keys do servidor remoto (este arquivo mantém todas as chaves públicas:
ssh-copy-id user@serverip
Aqui, em vez de serverip, você precisa digitar o endereço IP do servidor remoto e, em vez de usuário, você deve digitar o nome de usuário do servidor ao qual está se conectando.
Depois de digitar o comando, você deve ser recebido com uma mensagem de aviso semelhante a esta:
The authenticity of host 'Server's IP address' can't be established. RSA key fingerprint is ... Are you sure you want to continue connecting (yes/no)?
Digite sim na linha de comando e pressione ENTER. Esta mensagem aparece apenas na primeira vez que esta acção é executada.
Outra mensagem aparecerá:
Warning: Permanently added 'SERVER IP' (RSA) to the list of known hosts. user@serverip's password:
Aqui você deve digitar a senha do usuário remoto do servidor (na maioria dos casos o nome de usuário é root). Depois de inserir a senha, que deve ser basicamente ele. Você será saudado com outra mensagem:
Now try logging into the machine, with "ssh 'user@serverip'", and check in: ~/.ssh/authorized_keys* to make sure we haven't added extra keys that you weren't expecting.
Como a nova chave pública foi adicionada ao seu servidor remoto, agora, toda vez que você efetuar login no seu servidor remoto, você não será solicitado a fornecer uma senha (a menos que você configurar uma senha para sua chave RSA no processo de geração).
Conclusão
Neste tutorial, você aprendeu a gerar o par de chaves SSH públicas/privadas e usar essas chaves com o servidor remoto para configurar uma conexão mais segura do que simplesmente usar a senha.
Comentários
April 05 2018
Parabéns amigo, explicação simples e funcional!
April 05 2018
Muito obrigado, ALfredo. Ficamos felizes em ajudá-lo! :)
November 06 2018
Fiz o processo na minha máquina mas ainda assim a senha está sendo requerida
October 04 2021
Por exemplo. Estou gerando uma chave ssh no pendrive. Copiei a chave publica para o pendrive e tenho as chaves privada e publica no servidor remoto. Desabilitei o login por senha e autorizei a sessão somente para quem tem a chave publica. Como é que informa isso para o servidor para que eu consigo logar com a chave que tenho no meu pendrive?
November 05 2021
Olá, Ezequiel! Pedi a ajuda para os universitários aqui e consegui uma resposta. Usando Linux, você pode especificar o caminho no Linux: 1. ssh -i ~/.ssh/old_keys/host2_key username@host2.somewhere.edu 2. onde host2_key é o caminho pra sua chave privada Só que isso só vai funcionar se o seu pendrive estiver formatado para o Filesystem Linux (ext4), já que não tem suporte para FAT!
February 01 2022
Fiz todo o processo e todas mensagens foram iguais ao post, mas ainda pede a senha .... onde tá essas chaves? Essas chaves são um arquivo? Elas são criadas no meu PC? O caminho /root/.ssh/td_rsa que foram salvas as chaves não existe nos ficheiros do meu servidor... pode explicar mais detalhadamente por favor?
February 04 2022
Olá, Lais! Você escolhe onde salvar as chaves depois de executar o primeiro comando (
ssh-keygen -t rsa
). No caso do nosso tutorial, nós sugerimos o caminho/home/tautvydas/.ssh/id_rsa
. E sim, elas ficam num arquivo criado no seu computador, que será localizado no diretório escolhido no passo 2 ?March 20 2023
O comando correto é: # ssh-copy-id -i id_rsa.pub root@serverip Porém, pede senha e quando eu digito a minha senha cadastrada várias vezes (por descargo de consciência) dá "Permission denied, please try again.". Pergunto: qual é a senha que se deve digitar? No tutorial fala que "deve digitar a senha do usuário remoto do servidor", porém, não fica claro, peço que sejam mais claros. A única senha que registrei é a senha de acesso que, acredito eu, seja essa senha, mas não vai.
March 24 2023
Isso, mesmo o trecho "-i id_rsa.pub" se refere à chave privada! No caso da senha, você deve digitar a senha que foi criada no primeiro passo, onde fala para "introduzir a frase de acesso"! ?
May 06 2023
Achei interessante e pretendo saber mais sobre o assunto
May 12 2023
Ficamos felizes, Vertino! Você pode navegar na nossa página de Tutoriais para encontrar mais guias e dicas sobre esses e outros assuntos. ?
February 23 2024
Estou tomando timeout quando seguir os passos... Poderiam me ajudar?
March 01 2024
Dá uma olhada nas dicas desse artigo, Amauri: https://www.hostinger.com.br/tutoriais/err_connection_timed_out. Boa sorte!