Neste tutorial será apresentada uma maneira de efetuar conexões
ssh entre servidores Linux sem a necessidade de informar a senha do root. Tais configurações foram efetuadas no sistema Debian
GNU/Linux 4.0.
Hoje, quando trabalhamos com vários servidores e esses precisam executar conexões ssh via scripts, seja para a execução de um backup por exemplo, ao utilizar o comando "scp" temos que passar no script a senha do root, o que fica exposto de certa maneira, não sendo seguro e necessitando sempre da atualização da senha do root no seu script toda vez que do servidor é alterada.
Para resolver este problema podemos criar chaves públicas/privadas para que esta conexão ssh entre os servidores sejam fechadas, sem a necessidade de informar a senha de root. Tal tipo de acesso é seguro e criptografado.
Um ponto negativo é que um usuário logado com root no servidor "X" poderá efetuar uma conexão ssh no servidor "Y" sem a necessidade de informar a senha do root do outro servidor, pois os mesmos estão fechando uma sessão segura, porém a pessoa que está utilizando esta conexão deveria mesmo ter permissão para conectar no servidor "Y"?
Configurando
1. Geração da chave.
No servidor que originará a conexão, executar o comando abaixo para gerar a chave (nas opções apenas pressionar enter). O comando irá gerar a chave pública para conexão em /root/.ssh/id_rsa.pub:
# ssh-keygen -b 1024 -t rsa
2. Configurando chave para uso.
Copiar o conteúdo do arquivo
/root/.ssh/id_rsa.pub para o servidor que receberá a conexão, colocando a chave copiada no arquivo
/root/.ssh/authorized_keys (criar o arquivo caso não exista).
Desta maneira o servidor que receberá a conexão terá a chave pública do servidor de origem, liberando a sessão segura criptografada.
3. Reiniciando o serviço.
Reiniciar o serviço do ssh no servidor que receberá a conexão:
# /etc/init.d/ssh restart
4. Teste.
Efetuar o teste. Ao executar:
# ssh -p"Porta" "IP Destino" -lroot
O terminal não deverá pedir senha.
Se tudo ocorreu bem, agora entre estes servidores você tem uma conexão segura, não sendo necessário informar senha de root a cada conexão ssh.
Adicionando mais servidores
Para fechar conexão segura com outros servidores para o mesmo servidor de destino, basta seguir os mesmos passos para a geração da chave pública no servidor de origem e colocar o conteúdo do arquivo /root/.ssh/id_rsa.pub dentro do arquivo /root/.ssh/authorized_keys no servidor de destino.
Pode-se colocar as chaves uma embaixo da outra, também pode-se colocar comentários no arquivo /root/.ssh/authorized_keys para informar de que servidor é a chave por exemplo.
Informações adicionais
Explicando os parâmetros para a geração da chave:
- ssh-keygen - é o comando para a geração da chave pública executada no servidor que originará a conexão;
- -b 1024 - é a quantidade de bits que terá a chave, neste exemplo estamos gerando a chave com 1024 bits;
- -t rsa - é o tipo de algoritmo usado para gerar a chave, a qual podendo ser RSA (Rivest, Shamir and Adleman) ou DSA (Digital Signature Algorithm).
Maiores informações referente a algorítimo DSA podem ser vistas em:
Maiores informações referente a algorítimo RSA podem ser vistas em:
Sobre criptografia... interessante:
CIA - Confidencialidade, Integridade e Autenticação
Dúvidas? Estou a disposição.
Também visitem o
meu blog, onde coloco vários posts.