Logins remotos pela rede sem password, usando o Putty
Como já tive oportunidade de referir, sou um “viciado” em SSH para acesso remoto as minhas máquinas. O SSH (Secure Shell) também conhecido como Secure Socket Shell é um protocolo/aplicação que permite de forma segura aceder remotamente a uma máquina Linux. Como é normal, a identificação perante uma máquina remota é realizada através de um utilizador e password, mas hoje vamos mostrar uma forma que nos permite aceder remotamente a uma máquina recorrendo a chaves públicas/chaves privadas.
Como configurar o SSH para aceder sem user/password?
Para este exemplo vamos considerar uma máquina com Windows 7 (Win7) e o servidor com Linux (Linux). De forma simples, pode dizer-se que o processo consiste na utilização de duas chaves: uma pública, que serve para encriptar a informação, e uma chave privada que serve para abrir/desencriptação a informação.
No Windows 7
Passo 1 – Fazemos o download do PuttyGen, aqui para gerar o par de chaves (publica/privada). Abrimos o programa, definimos o tamanho da chave para 2048 por questões de segurança (ver aqui), e em seguida carregamos no botão Generate.
Nota: Para ser mais rápida a criação do par das chaves, deve mover o rato no painel onde diz No Key.
Depois de geradas as chaves vamos guardar as mesmas numa pasta na nossa máquina (Win7).
Com o notepad, abrimos o ficheiro key.ppk e vamos copiar a chave pública (Também o podíamos fazer através do ficheiro key.pub). Copiamos a informação que se encontra entre Public-Lines e Private-Lines.
No Linux
Vamos à directoria do utilizador e abrimos o ficheiro (/home/<user>/.ssh/authorized_keys) e incluímos a chave publica obtida anteriormente. Devemos ainda colocar antes da ichave a string ssh-rsa (espaço antes e depois).
Putty no Windows 7
Vamos agora ao Putty e efectuamos as seguintes configurações:
Em Connection—>SSH –>Auth, indicamos a chave privada.
Em Connection—>Data, indicamos qual o utilizador a autenticar
E está feito. Agora é só estabelecer uma ligação remota segura do Win7 ao Linux.
Artigos relacionados
Este artigo tem mais de um ano
Excelente
Fica so a dica que, em vez de abrir ficheiros e andar a meter e copiar espacos, é só copiar o que o puttygen dá
X2 😀
E logo eu que só uso o putty 34234325 vezes por dia 😛
Muito útil.
Fantástico…. Tutoriais Linux são sempre bem-vindos…. Obrigado
Pequena correcção, isto não é válido SÓ para linux mas sim para qualquer sistema UNIX que tenha um servidor ssh.
Isso não é uma correcção, é um UPDATE 🙂
Bom post,
Para quem tem muitas ligações aconselho:
PuTTY Connection Manager – http://puttycm.free.fr/cms/
Experimentem.
Podem carregar as chaves no pageant do putty.
Assim nao é necessário indicar a chave de cada vez que ligam a um servidor.
Olá, no texto:
No Linux
Vamos à directoria do utilizador e abrimos o ficheiro (/home//.ssh/authorized_keys) e incluímos a chave publica obtida anteriormente. Devemos ainda colocar antes da ichave a string ssh-rsa (espaço antes e depois).
o ficheiro não é o /home//.ssh/authorized_keys
mas sim:
/home//.ssh/authorized_keys2
Bom trabalho 😉
@MGD
tens de indicar de quem é essa home.
no meu caso por exemplo e para o utilizador ppinto:
/home/ppinto/.ssh/authorized_keys
O authorized_keys era usado para versoes 1.x do OpenSSH, e o authorized_keys2 para as versoes 2.0.
Desde a versao OpenSSH 3.0 que o authorized_keys2 foi “deprecated” (2001), mesmo que continue a usa’-lo.
Portanto, se nao tiveres nada no authorized_keys sempre podes usar:
$ mv authorized_keys{2,}
Ou continuar a usar um ou outro. Eu ja’ actualizei os meus.
PS: Excelente Post!
Fica bem!
Não me levem a mal, mas eu não acho que este artigo esteja bem explícito.
1) “Com o notepad, abrimos o ficheiro key.ppk e vamos copiar a chave pública”
Para quê? No resto do artigo não diz porque é que copiamos a chave.
2) “deve mover o rato no painel onde diz No Key”
Não vi nenhum sítio a dizer “No Key”
3) “Putty no Windows 7, Vamos agora ao Putty e efectuamos as seguintes configurações:”
Isto já é no outro computador onde me quero ligar, ou é neste que eu estou a permitir a ligação?
4) “E está feito. Agora é só estabelecer uma ligação remota segura do Win7 ao Linux.”
Como é que estabelecemos a ligação?
—
Agora, só como adicição, “por questões de segurança (ver aqui)” – “ver aqui” não está ligado a nenhuma página.
Mais uma vez, por favor não me levem a mal. Apenas são dúvidas que me surgiram ao ler o artigo.
Parabéns pelo artigo, na mesma, pois anteontem eu queria fazer isto para poder vir ao meu computador a partir da faculdade 🙂
Obrigado.
Boas Nuno,
Na boa, as críticas construtivas são sempre bem aceites até para mantermos um trabalho mais profissional. Vamos la ver então
1) Teremos de passar a chave publica para o lado do servidor. Em termos gerais a chave publica é sempre conhecida de todos no entanto a informação só é desencriptada com a chave privada.
2) imagem 2 (no Putty Key Generator)
3) Tens um windows e um Linux. No Windows abres o putty.
4) crias uma sessão (Session, metes IP da maquina) no Putty e defines os parâmetros extra definidos nas imagens acima. depois voltas a Session e fazes LOAD.
5) Essa foi mesmo esquecimento. O link é para o artigo da quebra do RSA.
Este artigo foi elaborado considerando que já se domina um bocadito o Putty. Considero que faltou no artigo como se cria uma sessão.
Obrigado pelos reparos
Desde já obrigado pelas respostas! Eu uso o Putty para o meu servidor, mas não o domino nem de perto 😛
1) Pois, eu pensei isso, mas, no entanto, continuo sem saber para ONDE é que a copio. Quando faço ligação para o meu servidor, ou para a minha conta na faculdade, apenas preciso de username + password.
2) Got it! 🙂
3) Yah, mas é no mesmo computador onde comecei o artigo, ou é no computador onde quero fazer a ligação para aqui? Agora estou a assumir que é tudo no mesmo.
4) Ok, vou tentar entender/procurar sobre isto.
Mais uma vez obrigado 🙂
Bom dia
O exemplo prático apontado pelo Nuno Peralt parece-me interessante.
Há uma coisa que não percebo, no artigo não há indicação onde colocar o IP do host :S
Ou seja ligar-se de casa para a universidade ainda não é desta
Estou certo ou errado?
Cheers