ssh sem senha

Ssh sem senha

Acessar o ssh sem senha, acho que é uma das coisas, mais util para quem tem que lidar com vários servidores ao mesmo tempo, principalmente para quem precisa fazer copia de arquivos entre eles.

Para se utilizar desta facilidade, basta ter instalado o ssh-keygen, para gerar a chave da maquina. Para esta geração pode se utilizar dois tipos de criptografias, sendo elas, rsa e dsa

O que é RSA?

RSA é um algoritmo de criptografia de dados, que deve o seu nome a três professores do Instituto MIT (fundadores da atual empresa RSA Data Security, Inc.), Ronald Rivest, Adi Shamir e Leonard Adleman, que inventaram este algoritmo — até a data (2008), a mais bem sucedida implementação de sistemas de chaves assimétricas, e fundamenta-se em teorias clássicas dos números. É considerado dos mais seguros, já que mandou por terra todas as tentativas de quebrá-lo. Foi também o primeiro algoritmo a possibilitar criptografia e assinatura digital, e uma das grandes inovações em criptografia de chave pública.

fonte:http://pt.wikipedia.org/wiki/RSA

RSA é comumente mais usado, principalmente por ser o padrão do ssh-keygen.

O que é DSA?

DSA é o acrônimo de Padrão de Assinatura Digital (Digital Signature Algorithm), criado pelo NIST, e especifica o DSA para assinatura digital e SHA-1 para hashing. O DSA é um algoritmo assimétrico e a chave privada opera sobre o hash da mensagem SHA-1. Para verificar a assinatura um pedaço do código calcula o hash e outro pedaço usa a chave pública para decifrar a assinatura, e por fim ambos comparam os resultados garantindo a autoria da mensagem. O DSA trabalha com chaves de 512 à 1024 bits, porém ao contrário do RSA que é multipropósito, o DSA somente assina e não garante confidencialidade. Outro ponto contra o DSA é que a geração da assinatura é mais rápida do que o RSA, porém de 10 a 40 vezes mais lenta para conferir a assinatura.

Como funciona o ssh-keygen?

O ssh-keygen, gera as chaves publicas e privadas, para que a partir delas se possa acessar o servidor. Que no nosso caso ocorrerá sem a digitação da senha, mas essa utilização de chaves, fica como uma dica, para melhorar a segurança de acesso ao servidor, obviamente, se utilizando com senha.

Mãos na massa

Abra seu terminal, chama sua vó, e toda a família para assistir.

Gerando as chaves

Fica ao seu critério qual criptografia utilizar, por isso fiz a explicação das duas. Já que você ta com sua família ai, faça uma votação, para decidir, qual a melhor. Após a votação, siga o tutorial, utilizarei o rsa, se for utiliza dsa, basta trocar onde tem rsa, por dsa.

Faça login no terminal, com o usuário, que você quer acessar o servidor sem a senha. Pois a chave é específica ao usuário.

 ssh-keygen -t rsa

Você vai ter a seguinte resposta:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/vinicius/.ssh/id_rsa):

Meu usuário, é vinicius, não sei se você percebeu, mas meu nome é esse(veja a url!).Enfim, escolha a pasta da qual deseja salvar a chave. Se ta com preguiça apenas confirma.E receberá outra mensagem.Esse passo é muito importante

Enter passphrase (empty for no passphrase):

Como você leu acima, Entre com a palavra passe( a senha ). Como queremos acessar sem senha, apenas, confirme(aperta enter, pede ajuda a tua vó!) sem digitar nada.Ele vai pedir confirmação, aperte “enter” novamente. A confirmação:

Enter same passphrase again:

Pronto, criou a chave!

Your identification has been saved in /home/vinicius/.ssh/id_rsa.
Your public key has been saved in /home/vinicius/.ssh/id_rsa.pub.
The key fingerprint is...

Ele gera um bocado de carácter bonitinho, que não convêm colocar neste post. Tudo criado, agora vamos colocar a chave pública, no servidor, ao qual queremos acessar sem senha.

Colocando a chave pública no servidor destino!

Existem algumas formas diferentes de fazer esse passo, inclusive encontrei uma muito interessante ao escrever esse post. Vou descrever duas, uma simples, e outra mais simples ainda.

Forma simples

O que deve ser feito é colocar o conteúdo da chave pública(id_rsa.pub) no servidor, especificamente no arquivo, authorized_keys, tambem no usúario do servidor, ao qual teremos acesso.

Vamos supor que o nome do usuário do seja joao, no servidor viniciusmuniz.com

Primeiro vamos copiar a chave pública para o servidor

scp /home/vinicius/.ssh/id_rsa.pub joao@viniciusmuniz.com:/home/joao/

Digite sua senha, a sua penúltima vez a digita-la. E depois acesse o servidor, e coloque a chave pública no authorized_keys

ssh joao@viniciusmuniz.com
cat /home/joao/id_rsa.pub >> /home/joao/.ssh/authorized_keys

Pronto! Teste agora o acesso ssh, que já não haverá mais necessidade de senha.

Forma super simples

Essa forma eu encontrei escrevendo esse post. Existe uma facilidade que é o ssh-copy-id, que com apenas um comando, ele já insere a chave pública no servidor destino.

ssh-copy-id -i /home/vinicius/.ssh/id_rsa.pub joao@viniciusmuniz.com 

Acessando o ssh sem senha

Agora basta acessar, que não haverá mais a necessidade de senha. Divirtam-se!

 ssh joao@viniciusmuniz.com
Written by vinicius