Como gerar uma chave RSA para acesso ssh sem password
Para aceder a um servidor por ssh temos, normalmente, que introduzir uma password de acesso. Este procedimento acarreta dois problemas. O primeiro tem a ver com o facto de estarmos a enviar a nossa password não encriptada por aà fora e alguém a pode apanhar. Não que seja provável isto acontecer, mas é possÃvel.
O segundo problema é quando queremos, por exemplo, publicar de uma forma periódica ficheiros para o servidor (um backup agendado por rsync, por exemplo).
Para resolver estas questões, ou simplesmente para não ter que introduzir a password cada vez que se ligam por ssh ao servidor, vamos seguir os seguintes passos:
- Gerar uma chave RSA privada no nosso computador:
- Agora vamos copiar a chave gerada (chave pública) para o servidor (substituir moura@exemplo.net pelo servidor em causa):
- Agora vamos fazer login no servidor (única vez que vamos usar a password):
- Uma vez dentro do servidor, vamos adicionar a chave (chave pública anteriormente enviada) à lista de chaves autorizadas:
- Agora vamos só assegurar que os ficheiros têm as permissões necessárias:
ssh-keygen -t rsa
Aceitar as 3 opções pedidas por default (não inserir password)
scp ~/.ssh/id_rsa.pub moura@exemplo.net:~/
ssh moura@exemplo.com
mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_keys
rm id_rsa.pub
chmod go-w ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Agora, se fizeram tudo bem feito, já não precisam de introduzir password para aceder ao servidor ssh a partir do vosso computador.








Passou-se
Desde quando é que a password do ssh vai por aà fora desencriptada? A password nem sequer vai, quanto mais
Não que isto invalide o resto do post e as notas de como usar chaves (keys) em vez palavras chave (passwords).
@Bruno: problemas com a tradução (e de interpretação) dos artigos lidos levaram-me a tirar esta (errada) conclusão. Obrigado pelo reparo.
Tb já ia desatinar com a historia da pwd n encryptada.
(irem-me ás chaves etc). Já como é tou sempre a ver se n tenho ninguem a espreitar por cima do ombro.
Anywho, isso das keys é engraçado mas n é para mim (uso ssh regularmente). É complicar uma negociação que deve simples. E introduz umas variaveis que sinceramente me dão suores frios
Sim … ando a tomar uns comprimidos para a paranoia
Boss isso acontece no ftp que assenta no UDP. Será fácil com um sniffer ( http://en.wikipedia.org/wiki/Packet_sniffer ) apanhar as tramas e juntar a password!
Este é um exercÃcio tÃpico no estudo das comunicações por computador!
@Paulo A. Silva: O FTP assenta no UDP? Desde quando?
@hav0x: O conceito das chaves é muito usado em dois casos – o que o Rui descreveu, que é usado quando se tem total confiança na máquina (laptop encriptado, maquina em casa, etc) e se sabe que a chave privada não irá ser apanhada facilmente, e dá jeito ter uma forma de aceder à maquina remota de forma automatica e sem ter de introduzir uma password. Tal como o Rui disse, dá jeito quando se acede muito a uma determinada máquina, quando se quer usar automatismos como o rsync, etc.
O segundo caso é quando o admin da maquina remota te quer dar acesso à maquina dele, mas não quer saber a tua password nem quer dar acesso à shell. Este é o caso tipico de contas CVS/SVN com permissões de escrita. Nestes casos, geras a tua chave (com a tua própria password, ou sem password se quiseres) e mandas a chave publica ao admin da maquina remota. Assim o acesso é seguro para ambas as partes e ninguem sabe a password do outro.
@Bruno Rodrigues: Obrigado pela correcção.
TFTP assenta em UDP, contudo a informação de que a password (e demais informação) seguem de forma não encriptada é válida em ambas (TFTP e FTP).