SSH/SCP sem senha -- Passwordless

July 31st, 2009 | by Gustavo Lichti |


SSH sem senha

Muitas vezes precisamos automatizar um tarefa e essa tarefa envolve o acesso remoto via ssh ou a cópia de um arquivo via scp. Para isso precisamos de um acesso via ssh sem senha, e uma conta sem senha seria uma falta de segurança enorme. Então para isso podemos gerar um certificado e fazer uma relação de confiança. Este certificado é baseado em chave publica e chave privada. Onde a chave privada é pessoal e intransferível e a publica você pode distribuir.

ssh-sem-senha

Vamos trabalhar em cima do cenário abaixo, onde temos dois servidores e uma estação. E o problema é que a estação, que na imagem é chamada de cliente, tem a necessidade de fazer conexões com os servidores via ssh, mas sem a utilização de senhas.

Tendo como base a situação descrita logo a cima vamos a solução.

Na maquina cliente siga faça:

mkdir ~/.ssh
cd ~/.ssh

Muitas vezes o diretório .ssh no home do usuário já existe, mas não tem problema. O importante é estar dentro deste diretório. Em seguida vamos criar o certificado com o comando ssh-keygen, ele ira solicitar para que você digite o nome do arquivo do certificado e em seguida vai solicitar que você digite uma passphase, uma frase de autenticação para o certificado. Nesta hora você não vai digitar nada, senão a frase será solicitada na hora da conexão e aí não vai adiantar nada. Então apenas de enter nas duas vezes que ele te solicitar esta informação. Então faça:

(Eu de acordo com a imagem escolhi para nome do arquivo meu sobrenome, lichti)

captura_de_tela-gustavogustavo-laptop-ssh

ssh-keygen

Pronto esse processo ira gera dois arquivos com o nome escolhido, no meu caso:
lichti e lichti.pub. O arquivo lichti é o que você deve guardar para utilizar para se identificar sempre que for necessário, e o arquivo lichti.pub é o arquivo que enviaremos aos servidores que vamos ter acesso.

Vamos ao proximo e último passo, enviar as chaves aos servidores. Faça:

ssh-copy-id -i ~/.ssh/lichti.pub usuario@10.0.0.10
ssh-copy-id -i ~/.ssh/lichti.pub usuario@10.0.0.11

Pronto, agora já podemos utilizar o ssh para se conectar aos servidores sem a utilização de senha, veja:

ssh usuario@10.0.0.10 -i ~/.ssh/lichti
ssh usuario@10.0.0.11 -i ~/.ssh/lichti

ou

scp /etc/fstab usuario@10.0.0.10 -i ~/.ssh/lichti
scp /etc/fstab usuario@10.0.0.11 -i ~/.ssh/lichti

Tags: , , , , , , ,

  1. 2 Responses to “SSH/SCP sem senha -- Passwordless”

  2. By Phoenix on Jul 31, 2009 | Reply

    Mais uma dica muito interessante.

    Uso o ssh e scp com muita frequência. Irei aplicar com certeza.

    Valeu!
    []s

  3. By Juliano on Aug 26, 2009 | Reply

    Uma chave privada desprotegida (sem a "passphrase") é tão perigosa quanto uma conta sem senha. Melhor seria deixar a chave protegida, e utilizar ssh-add/ssh-agent para carregar e manter a chave em memória (para carregar a chave na memória, o administrador precisa estar presente para digitar a "passphrase" e autorizar o ssh-agent a utilizar a chave para conexões (via ssh-add)).

Post a Comment